我知道如何使用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进行通信。
答案 0 :(得分:1)
Exchange只是另一个SMTP服务器。您将个人资料指向服务器的细节,然后就完成了。我每天都在我的环境中这样做。是否因为某些原因在Exchange实例上禁用了SMTP?
答案 1 :(得分:1)
点击链接,了解有关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