![](/img/trans.png)
[英]Mailbox unavailable. The server response was: 5.7.1 Unable to relay WinForms
[英]Mailbox unavailable. The server response was: 5.7.1 Unable to relay Error
我在netsol服务器上托管了我的一个网站。 从那里contact.aspx
必须使用Exchange服务器发送电子邮件。 当我尝试发送电子邮件时:
错误 :邮箱不可用。 服务器响应为:5.7.1无法中继
码:
MailMessage message = new MailMessage(@"xxx@example.com",
@"test_user@yahoo.com",
"New Message",
"Exchange");
SmtpClient mail = new SmtpClient("exchange.abc.com", 29);
mail.EnableSsl = true;
mail.Credentials = new NetworkCredential(@"xxx@example.com", @"password");
mail.UseDefaultCredentials = false;
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
mail.Send(message);
我试过的选项:
大多数SMTP服务器的默认配置不是从不受信任的源中继到外部域。 例如,假设您联系SMTP服务器以获取foo.com并要求它向bar@xyzzy.com发送消息。 由于SMTP服务器并不真正知道您是谁,因此它将拒绝中继邮件。 如果服务器确实为你做了这件事,它将被视为一个开放的中继 ,这是垃圾邮件发送者经常做的事情。
如果您联系foo.com邮件服务器并要求它发送邮件到somebody@foo.com,它可能会让您这样做。 这取决于他们是否相信你是谁,你是谁。 通常,服务器将尝试进行反向DNS查找,如果您发送的IP与DNS中的MX记录的IP地址不匹配,则拒绝发送邮件。 因此,如果您说您是bar.com邮件服务器但您的IP地址与bar.com的MX记录不匹配,那么它将拒绝传递该邮件。
您需要与该SMTP服务器的管理员联系以获取身份验证信息,以便它允许您进行中继。 联系SMTP服务器时,您需要提供这些凭据。 通常它是用户名/密码,或者它可以使用Windows权限。 取决于服务器及其配置方式。
有关如何发送凭据的示例,请参阅无法使用SMTP向外部域发送电子邮件 。
我使用Windows Server 2012进行了很长一段时间的托管,并且它在多年后停止工作没有任何问题。 我的解决方案是将服务器的公共IP地址添加到中继列表并启用Windows集成身份验证。
我只做了两处修改而没有哪些帮助。
转到IIS 6 Manager
选择SMTP服务器的属性
在选项卡Access上,选择中继
添加您的公共IP地址
关闭对话框并在同一选项卡上单击“身份验证”按钮。
添加集成Windows身份验证
也许不需要一些步骤,但它有效。
我们有这个问题。 在权限和安全性方面,一切都设置得很好。
在大海捞针之后。 问题是某种启发式。 在电子邮件正文中,无论何时列出某个电子邮件地址,我们都会从我们的Exchange服务器收到上述错误消息。
经过2天的疯狂测试和拔毛才发现这一点。
因此,如果您已检查完所有内容,请尝试将电子邮件正文更改为“test”一词。 如果在那之后,您的电子邮件没有问题,那么您就会遇到某种垃圾邮件/启发式过滤器问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.