我有一个MVC .NET Web应用程序,现在已经运行了一年的大部分时间。但是今天我们收到了错误代码,而我却无法找到解决问题的方法。
在应用程序中,我使用SMTPClient发送电子邮件。为此,我们使用Outlook电子邮件帐户。这一直工作到今天。我得到的错误代码是:
邮箱不可用。服务器响应为:5.3.4 554-554 5.2.0 STOREDRV.Deliver;交付结果横幅
这是我在我的应用程序中使用的代码。
var client = new SmtpClient
{
Host = WebConfigurationManager.AppSettings["EmailHost"],
Port = 587,
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false,
Credentials = new System.Net.NetworkCredential(WebConfigurationManager.AppSettings["EmailSender"],
WebConfigurationManager.AppSettings["EmailSenderPassword"])
};
WebConfigurationManager.AppSettings [“EmailHost”]在webconfig中设置为 smtp.live.com 。
在此之后我添加数据和当然需要的其他信息,但我省略了。当我们到达代码的最后部分时会抛出错误; client.Send(mail);
到目前为止我尝试过的东西都没用。
我在SO和其他网站上看到了几个相似或有相同错误代码的帖子。但他们要么没有得到答复,要么他们标记登录到电子邮件帐户作为解决方案,这对我不起作用。
当我们登录电子邮件帐户时,我们收到了Microsoft发布的有关新隐私和安全更新的更新通知。这是从9月16日开始的。我不知道是否有三个月的时间限制你需要同意。但一周前,该电子邮件帐户发送了一封电子邮件,昨天发送邮件失败了。我们同意弹出协议,但它仍然没有工作。
有人知道我现在可以尝试什么或导致此错误的原因是什么?
答案 0 :(得分:10)
好的,我在我的系统上解决了这个问题,如下所示:
我发送的邮件的电子邮件地址与我发送的帐户不同,如下所示:
string from = "email@somwhere.com";
所以我改成了:
string from = "thecorrectemailaddress@outlook.com";
所以现在它工作得很好......快乐的日子
MailMessage mail = new MailMessage(from, to);
答案 1 :(得分:1)
5.2.0 STOREDEV
的响应是由于电子邮件服务器上的SPF。
https://en.wikipedia.org/wiki/Sender_Policy_Framework
这里发生的是,当您从email@somwhere.com
发送电子邮件时,您的电子邮件服务器尝试验证该电子邮件是合法的。因此,它询问somwhere.com
允许哪些IP发送声称来自somwhere.com
的电子邮件,因为您不拥有somwhere.com
,它告诉您的电子邮件客户端它是欺诈的,并且您的电子邮件客户端完全拒绝了它作为垃圾邮件。
因此,当您将电子邮件更改为...@outlook.com
时,outlook的SPF不会拒绝它为垃圾邮件,并且可以成功通过。
答案 2 :(得分:0)
我已在系统上解决此问题,如下所示: 发件人地址应类似于以下电子邮件地址- 1.“ thecorrectemailaddress@outlook.com” 2.“ thecorrectemailaddress@hotmail.co.uk” 在这里,我使用“ smtp.live.com”作为服务器域,端口是587。 如果防火墙有任何问题,您可以在防火墙中为同一端口587添加一条规则。