2012年10月7日 星期日

Database Mail的錯誤:5.5.1 SMTP AUTH is required.

        有天一早到公司竟發現我所有SQL Server上的作業幾乎都失敗了,真是嚇到我了,查看作業的歷程紀錄,發現都是失敗在發送信件的元件那裏,印象中公司用的Exchange前一陣子有升級,但怎麼會突然無法發送郵件呢?

        一開始我先用簡單的VBS在Server上發測試信看看,結果可以成功寄信!接著我測試SSIS封裝裡用VB.NET寫的發信程式,結果會拋錯,再接著我用Database Mail試試,結果收不到信,Database Mail紀錄有出現錯誤訊息,如下圖



--也可用以下指令查看mail失敗的原因
SELECT SUBSTRING(fail.subject,1,25) AS 'Subject',
       fail.mailitem_id,
       LOG.description
FROM msdb.dbo.sysmail_event_log LOG
join msdb.dbo.sysmail_faileditems fail
ON fail.mailitem_id = LOG.mailitem_id
WHERE event_type = 'error'

        為何只有VBS的發信程式可以寄,Database Mail與VB.NET的都不能寄呢?怎麼會出現5.5.1 SMTP AUTH is required.的錯誤,明明我都是用帳密驗證的啊!我試了半天,查了Database Mail所有可以設定的參數,發現沒有可以跟驗證有關的參數可以設了,只好求助代管Exchange的廠商了!

        廠商說Exchange升級有換IP,很想罵髒話,這麼重要的事怎麼沒跟我們講,連我們網管都不知道,後來針對新的IP開防火牆就解決了,最後我還是不知道為何VBS可以正常發信?


0 意見:

張貼留言