數據庫郵件嘗試發送 2 次然後失敗
我們的數據庫郵件執行了 3 年沒有出現任何問題,但是從一周開始,我們經常(但並非總是)收到此錯誤:
由於郵件伺服器故障,無法將郵件發送給收件人。(使用帳戶 1 (2021-10-13T22:31:21) 發送郵件。異常消息:無法將郵件發送到郵件伺服器。(發送郵件失敗。)。)
不幸的是,這條消息不是很有幫助。數據庫郵件總是嘗試發送郵件 2 次(間隔 1 分鐘),然後最終失敗。
- 有沒有辦法找出它失敗的原因??
- 有沒有辦法重新配置數據庫郵件,以便更頻繁地嘗試或以其他方式發送?
這週我發現我們遇到了同樣的問題。它實際上是在 10 月 1 日左右開始的,時斷時續,但還沒有嚴重到引起我的注意。不過,本週它變得更加嚴重。昨天我無法從我們的 3 個數據庫中的任何一個中收到一封電子郵件,所有這些都通過 Office 365 上的 SMTP 路由。您沒有提及您的 SMTP,因此這可能是您的問題,也可能不是您的問題。
做一些探勘,我可以找到一個我認為可以解決這個問題的修復方法:https ://dba.stackexchange.com/a/233249/131993
一旦我們在帶有 SQL Server 的機器上使用了該系統資料庫執行檔,我就能夠在第一次嘗試時可靠地發送電子郵件。修復後我發送了大約 150 條消息,沒有任何問題。因為它是斷斷續續的,我不能 100% 確定問題已解決,但到目前為止看起來還不錯。
我絕對可以至少回答你問題的第二部分。可以配置數據庫郵件使用的重試嘗試和重試延遲。您可以使用sysmail_configure_sp過程(參見
AccountRetryAttempts
和AccountRetryDelay
參數)來執行此操作,或者您可以通過 SSMS 配置相同的設置,方法是右鍵點擊對象資源管理器中的數據庫郵件並轉到“查看或更改系統參數”螢幕。關於確定故障根本原因的問題的第一部分,您可以嘗試在事件查看器或 SQL Server 日誌中檢查系統和應用程序日誌,看看這是否提供了有關錯誤的任何額外詳細資訊。此外,我最近看到了由 Office 365 中更改 TLS 支持引起的類似錯誤。如果您使用 Office 365 作為郵件伺服器,則應檢查 SQL Server 是否在支持 TLS 1.2 的版本上,並按照規定強制 TLS 1.2這個堆棧溢出問題。Office 365 不再正式支持 TLS 1.0 和 1.1,而且最近它們的工作方式不一致。