使用SQL Mail收發和自動處理郵件中的擴展存儲過程簡介
SQL Server提供了通過Exchange或OUTLOOK收發郵件的擴展存儲過程,下面將這幾個過程簡單的介紹一下。
一、啟動SQL Mail
xp_startmail @user,@passWord
@user和@passWord都是可選的
也可打開Enterprise Manager中的Support Services,在SQL Mail上單擊右鍵打開右鍵菜單,然後按Start來啟動
二、停止SQL Mail
xp_stopmail
也可用上述方法中的菜單裡的Stop來停止
三、發送郵件
xp_sendmail {[@recipients =] 'recipIEnts [;...n]'}
[,[@message =] 'message>
[,[@query =] 'query>
[,[@attachments =] attachments]
[,[@copy_recipients =] 'copy_recipIEnts [;...n]'
[,[@blind_copy_recipients =] 'blind_copy_recipIEnts [;...n]'
[,[@subject =] 'subject>
[,[@type =] 'type>
[,[@attach_results =] 'attach_value>
[,[@no_output =] 'output_value>
[,[@no_header =] 'header_value>
[,[@width =] width]
[,[@separator =] 'separator>
[,[@echo_error =] 'echo_value>
[,[@set_user =] 'user>
[,[@dbuse =] 'database>
其中@recipIEnts是必需的
參數說明:
參數 說明
@recipIEnts 收件人,中間用逗號分開
@message 要發送的信息
@query 確定執行並依附郵件的有效查詢,除觸發器中的插入表及刪除表外,此查詢能引用任何對象
@attachments 附件
@copy_recipIEnts 抄送
@blind_copy_recipIEnts 密送
@subject 標題
@attach_results 指定查詢結果做為附件發送
@no_header 不發送查詢結果的列名
@set_user 查詢聯接的用戶名,默認為Guset
@dbuse 查詢所用的數據庫,默認為缺省數據庫
四、閱讀郵件收件箱中的郵件
xp_readmail [[@msg_id =] 'message_number> [, [@type =] 'type' [OUTPUT]]
[,[@peek =] 'peek>
[,[@suppress_attach =] 'suppress_attach>
[,[@originator =] 'sender' OUTPUT]
[,[@subject =] 'subject' OUTPUT]
[,[@message =] 'message' OUTPUT]
[,[@recipients =] 'recipIEnts [;...n]' OUTPUT]
[,[@cc_list =] 'copy_recipIEnts [;...n]' OUTPUT]
[,[@bcc_list =] 'blind_copy_recipIEnts [;...n]' OUTPUT]
[,[@date_received =] 'date' OUTPUT]
[,[@unread =] 'unread_value' OUTPUT]
[,[@attachments =] 'attachments [;...n]' OUTPUT])
[,[@skip_bytes =] bytes_to_skip OUTPUT]
[,[@msg_length =] length_in_bytes OUTPUT]
[,[@originator_address =] 'sender_address' OUTPUT]]
參數說明:
參數 說明
@originator 發件人
@subject 主題
@message 信息
@recipIEnts 收件人
@skip_tytes 讀取郵件信息時跳過的字節數,用於順序獲取郵件信息段。
@msg_length 確定所有信息的長度,通常與@skip_bytes一起處理長信息
五、順序處理下一個郵件