0

我正在使用我们公司的 SMTP 服务器发送邮件。当我将邮件发送到其他邮件(公司域之外)时出现问题,返回错误:

“服务器拒绝了一个或多个收件人地址。服务器响应为 550 5.7.1 无法中继”。

如果邮件在公司内部,则没有错误,邮件发送成功。我的 Web 应用程序托管在 IIS 中。

4

2 回答 2

1

我假设您的代码没有任何问题。我想这是一个配置问题,即 SMTP 服务器配置为不向不属于您公司域的地址发送电子邮件。如果是这样,您需要与您的 Windows/网络团队核实,以确认在 SMTP 服务器级别应用的配置。

于 2013-02-20T11:59:58.903 回答
1

我已经解决了这个问题。要使用此代码,您需要添加命名空间Using System.Web.Mail;

源代码:

MailMessage mail = new MailMessage();

mail.To = "yourfromemail@domain.com";

mail.From = "yourtodomain@domain.com";

mail.Subject = "Email test.";

mail.Body = "Your body text here";

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");   //basic authentication

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "my_username_here"); //set your username here

mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "super_secret");       //set your password here

SmtpMail.SmtpServer = "127.0.0.1";  

SmtpMail.Send( mail );

//您需要将本地主机地址添加到 IIS 管理器。转到 IIS 管理器 -> 默认 SMTP 服务器 -> 属性 -> 访问 -> 中继 -> 仅从下面的列表中允许 -> 添加 -> 127.0.0.1 -> 单击确定

于 2013-06-07T02:55:37.560 回答