发送邮件失败,邮箱不可用

控制台应用程序已configuration为任务,并定期在应用程序服务器(Windows Server 2008 R2 SP2)上发送电子邮件

我们在这个系统上有一个补丁,现在我看到这个错误消息: 邮箱不可用。 服务器响应是:5.7.1客户端没有权限发送此发件人

哪些设置或权限受到了影响? 我该如何解决这个问题?

码:

using (var mail = new MailMessage()) { mail.From = new MailAddress(from); mail.To.Add(new MailAddress(to)); mail.Subject = subject; mail.Body = message; mail.IsBodyHtml = true; this.smtpClient.Send(mail); } 

configuration:

  <system.net> <mailSettings> <smtp> <network host="smtp.domain.com" port="25" defaultCredentials="true" /> </smtp> </mailSettings>> </system.net> 

堆栈跟踪:

 System.Net.Mail.DataStopCommand.CheckResponse(SmtpStatusCode statusCode, String serverResponse) at System.Net.Mail.DataStopCommand.Send(SmtpConnection conn) at System.Net.Mail.SmtpConnection.OnClose(Object sender, EventArgs args) at System.Net.ClosableStream.Close() at System.Net.Mail.MailWriter.Close() at System.Net.Mail.SmtpClient.Send(MailMessage message) 

这行代码很可能是问题所在

 mail.From = new MailAddress(from); 

事实上在你的配置你已经设置defaultCredentials为true。

您的SMTP可能不允许您以该用户的身份匿名发送电子邮件。

您有两个选项,设置您的SMTP允许匿名发送电子邮件,或明确提供有问题的用户的用户名和密码,设置UseDefaultCredentials为false。

如果您使用Exchange,请阅读以下内容:

https://technet.microsoft.com/en-us/library/aa997170(EXCHG.140).aspx