首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 2008 資料庫郵件故障排除:發送測試電子郵件完整步驟

     編輯:關於SqlServer

當資料庫郵件無法正常發送時,透過「發送測試電子郵件」功能可快速驗證設定檔連通性、SMTP 伺服器回應與郵件佇列狀態。本文詳細說明操作流程、權限需求與失敗時的診斷查詢。

操作流程

  1. 在物件總管連線至已設定資料庫郵件的 SQL Server 執行個體,展開「管理」→ 右鍵「資料庫郵件」→ 選擇「發送測試電子郵件」。若無設定檔,會提示啟動設定精靈。
  2. 在對話方塊中選擇欲測試的「資料庫郵件設定檔」。
  3. 填入「收件人」電子郵件地址。
  4. 輸入「主題」與「內文」,建議修改預設文字以利辨識(如加入時間戳記)。
  5. 點擊「發送測試電子郵件」,郵件將送入資料庫郵件佇列。
  6. 彈出的「資料庫郵件測試電子郵件」對話框會顯示 mailitem_id,請記下此編號。
  7. 工具列點選「新增查詢」,執行以下陳述式查詢發送狀態:
    SELECT * FROM msdb.dbo.sysmail_allitems
    WHERE mailitem_id = <您的 mailitem_id>;
    sent_status 欄位值:1=已發送、2=發送失敗、3=重試中。
  8. 若發生錯誤,執行以下查詢檢視詳細錯誤訊息:
    SELECT * FROM msdb.dbo.sysmail_event_log
    WHERE mailitem_id = <您的 mailitem_id>;

權限需求

僅 sysadmin 固定伺服器角色成員可使用「發送測試電子郵件」對話框。非 sysadmin 使用者可改用 sp_send_dbmail 預存程序測試。

常見故障排查方向

  • SMTP 伺服器設定錯誤:檢查設定檔中的 SMTP 伺服器名稱、連接埠、SSL、認證帳號密碼。
  • 防火牆/網路阻擋:確認 SQL Server 主機可連線 SMTP 伺服器對應連接埠(預設 25/587/465)。
  • 郵件佇列卡住:查詢 sysmail_mailitems 中 sent_status=3 且長時間未變更,可嘗試重啟 SQL Server Agent 或資料庫郵件外部程式。
  • 帳號權限不足:執行郵件的服務帳號需具備網路存取權限。

進階診斷

啟用資料庫郵件詳細記錄:在 SSMS「管理」→「資料庫郵件」右鍵「設定資料庫郵件」→「檢視記錄」→ 勾選「詳細記錄」,或查詢 msdb.dbo.sysmail_log 取得完整 SMTP 交互記錄。

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