如何使用Microsoft Exchange Server从Sql Server 2005/2008发送电子邮件?

时间:2010-09-02 13:24:19

标签: sql-server sql-server-2005 sql-server-2008

我知道如何使用Sql Server数据库邮件中邮件探查器中指定的SMTP服务器发送邮件。

你会这样做:

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进行通信。

2 个答案:

答案 0 :(得分:1)

Exchange只是另一个SMTP服务器。您将个人资料指向服务器的细节,然后就完成了。我每天都在我的环境中这样做。是否因为某些原因在Exchange实例上禁用了SMTP?

答案 1 :(得分:1)

  • 使用Exchange Server的IP作为SQL Server中的STMP服务器和
  • 配置Exchange Server的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:<your@email.address>
250 2.1.0 your@email.address....Sender OK
RCPT TO:<some.other.address@outside.your.domain>

在最后一行之后,您会收到两个答案中的任何一个。这意味着一切都很好:

250 2.1.5 some.other.address@outside.your.domain

这个(或类似的)意味着您仍未正确配置Exchange Server:

554 5.7.1 <some.other.address@outside.your.domain>: Relay access denied