無法讓 DBMail 在 SQL Server 2005 上工作
我在 Windows Server 2003 R2 虛擬機上執行 SQL Server 2005 SP3 (4053)。當嘗試從 SSMS GUI 或使用 發送測試 dbmail 消息時
sp_send_dbmail
,我得到適當的“郵件排隊”響應,但未收到郵件。然後我在 dbmail 日誌中收到以下錯誤:
"The mail could not be sent to the recipients because of the mail server failure. (Sending Mail using Account 4 (2011-12-05T14:53:27). Exception Message: Cannot send mails to mail server. (Failure sending mail.).)"
這是我目前的配置。(伺服器名稱更改以保護無辜者……)
profile_id name description last_mod_datetime last_mod_user ----------- ------------------- -------------------------------------- ----------------------- ---------------- 3 SQLSERVER1 Default mail profile for server. 2011-12-05 13:48:15.563 COMPANY\maxwed account_id name description email_address display_name replyto_address last_mod_datetime last_mod_user ----------- ----------- ---------------------------------- ----------------- ------------- ------------------ ----------------------- -------------- 4 SQLSERVER1 Default mail account for server dba@company.com SQLSERVER1 2011-12-05 15:18:57.800 COMPANY\maxwed account_id servertype servername port username credential_id use_default_credentials enable_ssl flags last_mod_datetime last_mod_user ----------- ----------- -------------------- ----------- -------- ------------- ----------------------- ---------- ----- ------------------------ -------------- 4 SMTP mail.company.com 25 NULL NULL 1 0 0 2011-12-05 15:18:57.800 COMPANY\maxwed servertype is_incoming is_outgoing last_mod_datetime last_mod_user ------------ ----------- ----------- ----------------------- ------------- SMTP 0 1 2005-10-14 01:55:32.850 sa paramname paramvalue description last_mod_datetime last_mod_user --------------------------------- ----------------- ------------------------------------------------------------------------------ ---------------------------------------- AccountRetryAttempts 1 Number of retry attempts for a mail server 2005-10-14 01:55:28.193 sa AccountRetryDelay 60 Delay between each retry attempt to mail server 2005-10-14 01:55:28.193 sa DatabaseMailExeMinimumLifeTime 600 Minimum process lifetime in seconds 2005-10-14 01:55:28.193 sa DefaultAttachmentEncoding MIME Default attachment encoding 2005-10-14 01:55:28.177 sa LoggingLevel 3 Database Mail logging level: normal - 1, extended - 2 (default), verbose - 3 2011-12-05 13:37:25.143 COMPANY\maxwed MaxFileSize 1000000 Default maximum file size 2005-10-14 01:55:28.193 sa ProhibitedExtensions exe,dll,vbs,js Extensions not allowed in outgoing mails 2005-10-14 01:55:28.193 sa
我可以相互ping伺服器,名稱解析工作正常……我什至已經從SQL Server遠端登錄到郵件伺服器,並使用SMTP命令發送郵件。
這很好用。Windows 錯誤日誌中沒有與此相關的錯誤。我與 Exchange 管理員交談,但他沒有看到任何消息。他說伺服器被配置為開放中繼,沒有任何限制。他還說他沒有錯誤消息,甚至沒有電子郵件到達 SMTP 伺服器的記錄。
如果我看
dbo.sysmail_log
,我看到郵件狀態在變為“失敗”之前是“重試”,但我沒有收到其他錯誤消息,甚至沒有超時。如果我使用 sysmail_help_queue_sp 查看郵件隊列,我會看到狀態從 INACTIVE 變為 RECEIVES_OCCURRING,然後又回到 INACTIVE。然而,我剩下的只是通用錯誤消息。我所做的所有Google搜尋都顯示了更具體的錯誤消息。所以現在我很茫然。任何和所有的建議將不勝感激。
更新:
執行
sysmail_help_queue_sp
,我發現即使我停止並重新啟動郵件隊列,使用sysmail_stop_sp
andsysmail_start_sp
,隊列狀態仍然是 INACTIVE。我知道這應該是 RECEIVES_OCCURRING。我的問題是這是什麼意思,我如何讓它進入正確的狀態?進一步更新,我打開了 Wireshark 以查看 TCP 級別發生了什麼。在某種程度上,一切看起來都很正常。SQL Server 框打開與郵件伺服器的連接以驗證連接,郵件伺服器響應,然後關閉連接。到那時,我的“工作”框和這個失敗的框都是相同的,但是工作框再次打開連接,以實際發送電子郵件。失敗的盒子沒有。不知道這是否有幫助,但這是另一個觀察結果……
另一個更新:我完全禁用了以下功能:Symantec Antivirus、ISA Firewall 和 Windows Firewall 已被禁用。還是行不通。對不起。:-)
謝謝,-大衛。
當防病毒軟體阻止數據庫郵件時,我看到了這個錯誤。對於 McAfee,它是防止群發郵件蠕蟲規則。因此您可以檢查 databasemail.exe 是否在例外列表中
請與您的 Exchange 管理員聯繫,以確保 Exchange 伺服器將新 SQL 伺服器辨識為“郵件中繼”。
如果不在您在交換伺服器上使用的 SMTP 虛擬伺服器的中繼列表中,郵件將無法到達任何地方。我忘記將 SQL 伺服器添加到列表中,我花了一段時間才弄明白。