SQL Mail vs SQLAgentMail
SQL Server 提供兩種郵件服務:
- SQLAgentMail:僅支援警示/作業完成時寄送郵件/呼叫器,觸發條件限於事件或效能條件。
- SQL Mail:功能更強,支援任何 MAPI 相容郵件系統(Exchange、Outlook),可在應用程式、預存程序、觸發器中呼叫系統預存程序收發郵件、執行查詢並回傳結果、自動回覆含查詢的郵件。
設定前置作業
- 選擇 MAPI 相容郵件系統(建議 Microsoft Exchange)。
- 由 Exchange 管理員為 SQL Server 服務帳號建立信箱。
- 在執行 SQL Server 的機器安裝並設定 Outlook 用戶端(控制台 → 郵件與傳真)。
- 測試 Exchange 連線是否正常。
- 重要:SQL Server 服務啟動帳號必須為 Windows 系統管理員帳號,且與登入帳號相同。
Enterprise Manager 設定步驟
- 展開 Support Services 資料夾,右鍵 SQL Mail 選擇 Properties。
- 在 Profile 下拉選單選取建立好的 MAPI 設定檔。
- 點擊 Test 驗證,成功會彈出確認訊息。
核心系統預存程序
| 預存程序 | 功能 |
xp_sendmail | 發送郵件/呼叫器,可附加查詢結果 |
xp_readmail | 讀取郵件 |
xp_findnextmsg | 尋找下一封郵件 |
xp_deletemail | 刪除郵件 |
xp_startmail/xp_stopmail | 啟動/停止 SQL Mail 工作階段 |
應用範例
-- 發送查詢結果給操作員
EXEC xp_sendmail
@recipients = 'admin@company.com',
@query = 'SELECT * FROM sales WHERE amount > 10000',
@subject = '高額銷售警報',
@attach_results = 'TRUE';
小結
SQL Mail 打破 SQLAgentMail 的觸發限制,讓資料庫能主動整合企業郵件流程。正確設定 MAPI 環境與服務帳號是成功關鍵。
- 上一篇文章: SQL Server Profiler 追蹤建立與事件監控實戰教學
- 下一篇文章: DTS Designer 圖形化建立封裝教學:資料轉換與欄位合併實戰
Copyright ©
程式碼之家 All Rights Reserved