【问题标题】:Mailbox unavailable. The server response was: 5.7.1 Unable to relay Error信箱不可用。服务器响应为:5.7.1 无法中继错误
【发布时间】:2013-03-21 00:14:57
【问题描述】:

我在 netsol 服务器上托管了我的一个网站。从那里contact.aspx 必须使用交换服务器发送电子邮件。当我尝试发送电子邮件时:

错误:邮箱不可用。服务器响应为: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);

我尝试过的选项:

  • 在端口 465 或 587 或 25 上测试
  • 已更改 SmtpDeliveryMethod.PickupDirectoryFromIis
  • 无法配置 IIS(SMTP 服务器),因为它托管在其他人的服务器上

【问题讨论】:

  • 您可以使用@JimMischel 答案进行测试吗?

标签: c# asp.net smtpclient


【解决方案1】:

大多数 SMTP 服务器的默认配置是不从不受信任的来源中继到外部域。例如,假设您联系 foo.com 的 SMTP 服务器并要求它向 bar@xyzzy.com 发送消息。因为 SMTP 服务器并不真正知道你是谁,所以它会拒绝中继消息。如果服务器确实为您这样做,它将被视为open relay,这是垃圾邮件发送者经常做的事情。

如果您联系 foo.com 邮件服务器并要求它向某人@foo.com 发送邮件,它可能会让您这样做。这取决于他们是否相信你就是你所说的那个人。通常,服务器会尝试进行反向 DNS 查找,如果您发送的 IP 与 DNS 中 MX 记录的 IP 地址不匹配,则拒绝发送邮件。所以如果你说你是 bar.com 的邮件服务器,但你的 IP 地址与 bar.com 的 MX 记录不匹配,那么它会拒绝投递邮件。

您需要与该 SMTP 服务器的管理员联系以获取身份验证信息,以便它允许您进行中继。当您联系 SMTP 服务器时,您需要出示这些凭据。通常它可以是用户名/密码,也可以使用 Windows 权限。取决于服务器及其配置方式。

有关如何发送凭据的示例,请参阅 Unable to send emails to external domain using SMTP

【讨论】:

  • 这影响了我们。当我们使用有线连接时,它可以工作。但是在工作中的 wifi 连接上,由于 ip 范围不同,它没有。我们必须更新 Exchange 以包括这个向上范围
  • 感谢您的解释,这就是为什么我可以在同一主机上的地址而不是其他主机上发送邮件的原因。
【解决方案2】:

我长期使用 Windows Server 2012 进行托管,但几年后它就停止工作了,没有任何问题。我的解决方案是将服务器的公共 IP 地址添加到中继列表并启用 Windows 集成身份验证。

我刚刚做了两个更改,但没有任何帮助。

转到 IIS 6 管理器

选择 SMTP 服务器的属性

在“访问”选项卡上,选择“继电器”

添加您的公共 IP 地址

关闭对话框并在同一选项卡上单击“身份验证”按钮。

添加集成 Windows 身份验证

也许不需要某些步骤,但它可以工作。

【讨论】:

  • 我们中的一些人没有安装 SMTP 虚拟服务器。
【解决方案3】:

我们遇到了这个问题。就权限和安全性而言,一切都设置得很好。

在大海捞针之后。问题是某种启发式方法。在电子邮件正文中,只要列出了某个电子邮件地址,我们就会从我们的交换服务器收到上述错误消息。

花了 2 天的时间进行疯狂的测试和拔头发才找到这个。

因此,如果您检查了所有内容,请尝试将电子邮件正文更改为仅包含“测试”一词。如果在那之后,您的电子邮件正常发送,那么您遇到了某种垃圾邮件/启发式过滤器问题,就像我们一样

【讨论】:

    猜你喜欢
    • 2017-11-24
    • 2015-03-06
    • 2012-04-05
    • 2012-07-15
    • 1970-01-01
    • 2011-03-11
    • 2017-10-14
    • 2014-04-15
    相关资源
    最近更新 更多