信箱不可用.服务器响应为:5.7.1无法中继错误

Arj*_*jun 15 c# asp.net smtpclient

我在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);
Run Code Online (Sandbox Code Playgroud)

我试过的选项:

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

Jim*_*hel 41

大多数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向外部域发送电子邮件.


Tom*_*bes 10

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

我只做了两处修改而没有哪些帮助.

转到IIS 6 Manager

转到IIS 6 Manager

选择SMTP服务器的属性

选择SMTP服务器的属性

在选项卡Access上,选择中继

在选项卡Access上,选择中继

添加您的公共IP地址

添加您的公共IP地址

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

添加集成Windows身份验证

添加集成Windows身份验证

也许不需要一些步骤,但它有效.