本文節選自《用 BackOffice 建立 Intranet/Extranet 應用》(鐵道出版社,ISBN 7113039448),說明 SQL Mail 如何透過擴充預存程序 xp_sendmail 發送郵件。
xp_sendmail 在預存程序或批次中發送郵件。xp_sendmail
[@recipients =] 'recipients[;...n]'
[,[@message =] 'message']
[,[@query =] 'query']
[,[@attachments =] 'attachments']
[,[@copy_recipients =] 'cc_recipients[;...n]']
[,[@blind_copy_recipients =] 'bcc_recipients[;...n]']
[,[@subject =] 'subject']
[,[@type =] 'type']
[,[@attach_results =] 'TRUE|FALSE']
[,[@no_output =] 'TRUE|FALSE']
[,[@no_header =] 'TRUE|FALSE']
[,[@width =] width]
[,[@separator =] 'separator']
[,[@echo_error =] 'TRUE|FALSE']
[,[@set_user =] 'user']
[,[@dbuse =] 'database']
| 參數 | 說明 |
|---|---|
@recipients | 收件人,多位以分號分隔,必填。 |
@message | 郵件內文,最長 7990 位元組。 |
@query | SQL 查詢語句,結果集將附於郵件,最長 8000 位元組。 |
@attachments | 附件檔案路徑。 |
@copy_recipients | 副本(CC)收件人。 |
@blind_copy_recipients | 密件副本(BCC)收件人,郵件中不顯示地址。 |
@subject | 郵件主旨,預設 SQL Server Message。 |
@attach_results | 是否將查詢結果作為附件寄出,預設 FALSE。 |
@width | 查詢結果行寬,預設 80 字元,可調大防止截斷。 |
@separator | 結果欄位分隔字元,方便電子表格匯入。 |
@echo_error | 是否包含系統錯誤訊息,預設 TRUE。 |
EXEC xp_sendmail
@recipients = 'admin@example.com',
@subject = '每日銷售報表',
@message = '請查收附件。',
@query = 'SELECT * FROM Sales WHERE SaleDate = CONVERT(date, GETDATE())',
@attach_results = 'TRUE',
@width = 200,
@separator = ',';
此範例將當日銷售資料以 CSV 格式附件寄送給管理員。