如何使用Exchange 2007和c#在我的域外发送电子邮件
只要from和to地址都在我的域中,我就能够在Exchange 2007上使用典型的C#SMTP代码发送电子邮件。
一旦我尝试在域外发送电子邮件,我就会得到:
exception详细信息:System.Net.Mail.SmtpFailedRecipientException:邮箱不可用。 服务器响应为:5.7.1无法中继
我如何获得交换接受我的电子邮件并将其发送到互联网?
尝试#2 …如何使用Exchange代答文件夹呢? 它们是通过Exchange发送电子邮件的更快捷方式,因为它只是创建电子邮件并将其丢弃在文件夹中,无需等待连接到服务器或等待回复。 另外我认为它会跳过整个接力问题。
像这样配置你的SmtpClient:
SmtpClient srv = new SmtpClient("exchsrv2007", 25) { DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = "\\exchsrv2007\PickupFolder" } ...
对Exchange服务器进行身份validation。
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.credentials.aspx
DefaultNetworkCredentials返回用户名等的空字符串并导致此exception…
这是一个示例 ,这是另一个使用System.Net.Mail发送经过身份validation的消息。
您需要让您的Exchange管理员配置交换以允许在域外发送。 根据我的经验,由于垃圾邮件问题,他们一直不愿意这样做。
如果它的用途有限,您可以设置服务器端规则以转发满足域外某些条件的消息。 你也许可以在这些中使用VBA以及漂亮的东西,但我不确定。
您是否设置了交换服务器以允许来自Web服务器的中继 ? 切换到Exchange 2007时遇到了同样的问题。