Sql-Server

可以發送測試數據庫郵件但工作郵件失敗

  • May 26, 2021

我最近停止接收 sql 代理作業失敗通知。經調查,報告的錯誤是:

The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 1 (2017-08-16T02:40:14). Exception Message: Could not connect to mail server. (No such host is known).

郵件帳戶設置沒有更改,我驗證它看起來正確。此外,我可以使用SSMS 中***的 Send Test Email… 功能成功發送和接收電子郵件。***那麼為什麼工作不能發送電子郵件呢?

由於 Send Test Email… 功能對電子郵件進行排隊,因此以這種方式發送它與發送它的作業相比似乎沒有權限問題。此外,這表明這不是防火牆問題。所以唯一的區別是一天中的時間……作業在半夜執行……但我想不出任何系統配置會改變。

還有其他要檢查的想法嗎?

當您使用發送測試電子郵件時,SSMS 正在使用您的憑據。當 SQL 代理嘗試連接到郵件配置文件時,它使用的是 SQL 代理服務帳戶憑據。那將是一個主要區別,並且與一天中的時間沒有任何關係……只是憑據。您可以通過安排一個任務失敗的作業來測試它(即 Select * from northwind)並讓 SQL 代理執行它,並確定它是否會發送通知。這至少會消除服務帳戶權限的可能性……

我可以想到兩種可能性:執行 SQL Server 作業的使用者可能沒有正確的權限(可能是由於郵件伺服器端的更改);或者,伺服器本身由於某種原因在夜間停機。

我建議您創建一個肯定會失敗的作業,並在白天和晚上按計劃執行它。如果白天失敗,則 SQL Server 代理使用者的權限可能不再適合發送郵件。如果白天成功,晚上失敗,那麼可能是郵件伺服器本身出了問題。

請注意您報告的錯誤:

無法連接到郵件伺服器。(沒有這樣的主機是已知的)。

聽起來好像找不到郵件伺服器。

引用自:https://dba.stackexchange.com/questions/183752