首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL Server SQL Mail 擴展存儲程序完整指南:啟動、發送、讀取與自動化處理

     編輯:MySQL 資料庫相關知識

SQL Server 透過 SQL Mail 整合 Exchange/Outlook,提供一組擴展存儲程序實現郵件收發與自動化處理。本文系統整理核心程序參數與實戰用法。

核心擴展存儲程序速查表

1. 啟動 / 停止 SQL Mail

-- 啟動
xp_startmail @user, @passWord  -- 參數皆可選
-- 或企業管理員 → Support Services → SQL Mail 右鍵 → Start

-- 停止
xp_stopmail
-- 或企業管理員 → Stop

2. 發送郵件

xp_sendmail 
    [@recipients =] 'recipients[;...n]'          -- 必填,收件人以分號分隔
    [,[@message =] 'message']
    [,[@query =] 'query']                        -- 查詢結果隨郵件發送
    [,[@attachments =] 'attachments']
    [,[@copy_recipients =] 'cc_list[;...n]']
    [,[@blind_copy_recipients =] 'bcc_list[;...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']                      -- 查詢執行身分,預設 Guest
    [,[@dbuse =] 'database']                     -- 查詢使用資料庫,預設預設資料庫

3. 讀取收件匣郵件

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 =] 'cc_list[;...n]' OUTPUT]
    [,[@bcc_list =] 'bcc_list[;...n]' OUTPUT]
    [,[@date_received =] 'date' OUTPUT]
    -- 更多參數請參閱線上叢書

實戰應用場景

  • 自動化警示: Agent Job 失敗 → xp_sendmail 發送錯誤詳情給 DBA。
  • 報表訂閱: 排程跑查詢 → @query 參數附上結果 → 定時寄送給業務主管。
  • 郵件觸發業務流程: 定期 xp_readmail 掃描特定主旨郵件 → 解析內容 → 呼叫存儲程序處理訂單/核准單。

注意事項

  1. SQL Mail 需 32 位元 Outlook/MAPI 用戶端,64 位元 SQL Server 需額外設定。
  2. SQL Server 2005+ 建議改用 Database Mail(sp_send_dbmail),架構更穩健、支援 SMTP、無 MAPI 相依。
  3. 郵件處理邏輯建議封裝於存儲程序,搭配 TRY...CATCH 記錄失敗日誌。

總結

掌握 xp_startmail/xp_stopmail/xp_sendmail/xp_readmail 四大核心程序,即可在 SQL Server 層面實現完整郵件收發自動化。新專案優先採用 Database Mail 以獲得更佳相容性與維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved