使用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一起處理長資訊
五、順序處理下一個郵件
xp_findnextmsg [[@msg_id =] 'message_number' [OUTPUT]]
[,[@type =] type]
[,[@unread_only =] 'unread_value> )
六、刪除郵件
xp_deletemail {'message_number'}
如果不指定郵件編號則刪除收件匣中的所有郵件
七、自動處理郵件
sp_processmail [[@subject =] 'subject>
[,[@filetype =] 'filetype>
[,[@separator =] 'separator>
[,[@set_user =] 'user>
[,[@dbuse =] 'dbname>