2009-12-06 57 views
0

我已經配置數據庫郵件從SQL數據庫發送簡訊電子郵件。我有一個選擇的用戶的電子郵件,向他們發送郵件這樣一個存儲過程:SQL Server 2005數據庫郵件錯誤(操作超時)

EXEC msdb.dbo.sp_send_dbmail 
@profile_name = 'ProfileName', 
@recipients = @email, 
@subject = @thesubject, 
@body = @themessage, 
@body_format = 'HTML' ; 

用於發送工作正常,表兄弟姐妹,當我發送的測試郵件配置數據庫後,帳戶的郵件被髮送但是問題是發送多個郵件。

當前執行存儲過程後表中有50封電子郵件我檢查了msdb表sysmails_event_log,sysmails_faileditems和sysmails_sentitems,我發現只有第12封電子郵件被髮送,其餘的失敗,event_log中的錯誤信息是:

郵件無法發送,因爲郵件服務器故障的收件人。 (使用帳戶1發送郵件(2009-12-01T16:55:11))異常消息:無法向郵件服務器發送郵件(操作已超時))

我檢查了郵件號碼。 13和laters,我沒有發現他們有什麼問題,所以我試着再次執行這個程序,這次它發送到第14封電子郵件,其餘的失敗了同樣的錯誤,所以我改變了程序,並選擇了郵件從郵件號碼開始。 15 (好像它會從記錄15發送到50)並進行測試,這次它發送到第13封電子郵件,我從27到50中選擇並執行,再次發送到第12個郵箱。

I不明白髮生了什麼這裏發送郵件的行爲一次只能在12-14郵件範圍內發送。

任何人都可以幫助我嗎?

在此先感謝

回答

1

SMTP服務器位於何處?您是否檢查過是否可以通過該SMTP服務器同時觸發超過12封電子郵件,而不涉及SQL Server?它看起來像問題不是SQL Server,而是SMTP服務器上的某種策略。在數據庫服務器和SMTP服務器之間的防火牆或其他網絡設備上也可能存在某種濫用預防。您是否考慮在數據庫服務器上設置SMTP服務,然後設置數據庫郵件,以便它使用本地SMTP服務器而不是通過網絡(並可能運行到上面提到的策略或策略中)?當然,您應該安全地設置SMTP,確保只允許來自本地計算機的連接。

+0

的SMTP服務器位於數據庫服務器的同一個域和SMTP服務器可以在使用和不使用SQL Server的一次火災超過12個電子郵件參與,我不認爲有任何實物之間濫用預防數據庫服務器和SMTP服務器,因爲在使用數據庫郵件之前我使用XPSMTP擴展過程從SQL發送郵件,它工作正常,所有電子郵件都已發送,我只切換到數據庫郵件因爲我需要發送大型郵件正文作爲nvarchar (max),並且xpsmtp只允許nvarchar(4000)。 – Yasmine 2009-12-07 10:47:18

+0

所以我認爲這個問題可能是數據庫郵件而不是SMTP服務器,因爲在切換到數據庫郵件之前一切正常。至於使用本地SMTP服務器的解決方案,我希望這是最後的解決方案。 謝謝 – Yasmine 2009-12-07 10:55:44

+0

這是我使用數據庫郵件之前的擴展過程 http://www.sqldev.net/xp/xpsmtp.htm – Yasmine 2009-12-07 10:58:20

0

我解決這個情況做兩件事情:

  1. 重做數據庫郵件配置文件
  2. 重新啓動的Windows SMTP服務

希望工程的人誰得到了同樣的情況。