2010-09-02 191 views
1

我知道如何使用Sql Server的數據庫郵件中的郵件分析器中指定的SMTP服務器發送郵件。如何使用Microsoft Exchange Server從Sql Server 2005/2008發送電子郵件?

你會做它像這樣:

EXEC msdb.dbo.sp_send_dbmail @profile_name = 'profile', 
           @recipients = @email, 
           @body = @body, 
           @body_format = 'HTML', 
           @subject = @subject 

但我不知道如何使用Microsoft Exchange發送郵件。

更新1 我相信,我不能夠通過Exchange發送郵件的主要問題是,它使用基於NTLM身份驗證。而且我絕對不希望我的Sql Server使用我的域用戶憑證運行。

更新2. 謝謝您的建議。這是抓住。我對任何涉及公司Exchange Server的問題都沒有任何控制權。因此,唯一的行動方式是嘗試以某種方式在Exchange端點上模擬我。幸運的是,我可以通過telnet ip-of-the-exchange-server 25與Exchange進行通信。

+0

嗯......如果你不有任何控制權的Exchange服務器,最簡單的解決方案可能是隻使用您的互聯網提供商的SMTP服務器...... – Heinzi 2010-09-02 22:19:32

+0

但如果唯一的出路是這個企業郵件呢?除了Exchange和通過它進入交互管理器的代理服務器之外,一切都被阻止。 – 2010-09-03 06:33:47

回答

1
  • 使用您的Exchange服務器的IP作爲SQL Server中的STMP服務器和
  • 配置Exchange服務器的SMTP連接器,以允許中繼您的SQL Server的IP。

按照鏈接瞭解how to do this with Exchange Server 2003 and 2007的說明。

關於你的更新:如果你像上面描述的那樣做(允許中繼),你不需要任何憑證。您的SQL Server的機器上的每個進程都將被允許在沒有任何授權的情況下通過Exchange Server發送郵件。

以下是一些調試SMTP連接的一般提示。爲了測試這個配置,你可以打開你的SQL Server上的命令行和使用telnet創建一個SMTP會話(你必須輸入不以數字開頭的行):

C:\>telnet ip-of-your-exchange-server 25 
220 your.domain Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Thu, 2 Sep 2010 16:19:33 +0200 
EHLO heinzi 
250-your.domain Hello [192.168.3.1] 
250-TURN 
[...] 
250-XEXCH50 
250 OK 
MAIL FROM:<[email protected]> 
250 2.1.0 [email protected] OK 
RCPT TO:<[email protected]> 

最後一行之後,你收到兩個答案中的任何一個。這一個意味着一切都很好:

250 2.1.5 [email protected] 

這一個(或類似的)意味着你仍然沒有正確地配置您的Exchange Server:

554 5.7.1 <[email protected]>: Relay access denied 
1

Exchange只是另一個SMTP服務器。您將您的個人資料指向您的服務器的具體信息,即可完成。我每天都在我的環境中做這件事。您的Exchange實例因爲某種原因被禁用了SMTP?

相關問題