相同的ASP.NET MVC 4网站,相同的邮件发送代码。从AccountController发送电子邮件不再有效,从所有其他控制器发送电子邮件也不再有效。
下面是我从AccountController操作中得到的错误:
Cannot send e-mail from noreply@domain.com to bill@microsoft.com
Exception: Mailbox unavailable. The server response was: 5.7.1 Unable to relay.
mail.domain.com, SMTPSVC/mail.domain.com, 25, 我该查些什么?它工作了很多年,但是最近的Windows 2008 / Exchange 2010更新已经不能工作了。
MailMessage message = new MailMessage(fromAddress, toAddress)
{
Subject = subject,
Body = body,
IsBodyHtml = isHtml
};
try
{
smtpClient.Send(message);
string errorMsg = "Sending e-mail from " + fromAddress.Address + " to " + originalAddresses[i];
errorMsg += Environment.NewLine;
errorMsg += smtpClient.Host + ", " + smtpClient.TargetName + ", " + smtpClient.Port + ", " + smtpClient.ClientCertificates + ", " + smtpClient.EnableSsl + ", " + smtpClient.UseDefaultCredentials + ", " + smtpClient.Timeout;
sw.WriteLine(errorMsg)
}
catch (Exception ex)
{
string errorMsg = "Cannot send e-mail from " + fromAddress.Address + " to " + originalAddresses[i] + ", " + "Exception: " + ex.Message +
(ex.InnerException != null ? ", " + ex.InnerException.Message : string.Empty);
errorMsg += Environment.NewLine;
errorMsg += smtpClient.Host + ", " + smtpClient.TargetName + ", " + smtpClient.Port + ", " + smtpClient.ClientCertificates + ", " + smtpClient.EnableSsl + ", " + smtpClient.UseDefaultCredentials + ", " + smtpClient.Timeout;
sw.WriteLine(errorMsg);
return false;
}知道我该查些什么吗?AccountController有什么我应该关心的特别的东西吗?是否涉及[RequireHttps]控制器操作属性?
谢谢。
EDIT1:
下面是我们的Exchange2010设置(请注意,我们可以从其他 MVC控制器发送相同的电子邮件消息):
EDIT2:
我错了,问题不是与ASP.NET MVC控制器有关,而是与电子邮件地址域有关.我发现,所有的时间,我们包括一个电子邮件地址,不属于我们的公司域名(外部互联网),我们得到上述错误。所以现在的问题是:为什么Exchange 2010接收连接器现在无法向外部互联网发送电子邮件通知?
发布于 2017-06-22 07:30:45
服务器场更改了我们服务器的传出IP地址,这阻止了包含不在公司域中的收件人的所有电子邮件消息。在Properties->Network->Receive mail from remote servers that have these IP addresses下将新的传出IP地址添加到Exchange2010ReceiveConnector解决了这个问题。
https://stackoverflow.com/questions/44670235
复制相似问题