Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Outlook SMTPClient服务器错误5.3.4 5.2.0_C#_Outlook_Smtp_Smtpclient - Fatal编程技术网

C# Outlook SMTPClient服务器错误5.3.4 5.2.0

C# Outlook SMTPClient服务器错误5.3.4 5.2.0,c#,outlook,smtp,smtpclient,C#,Outlook,Smtp,Smtpclient,我有一个MVC.NETWeb应用程序,它已经稳定运行了一年的大部分时间。但是今天我们收到了一个错误代码,我很难找到解决问题的方法 在应用程序中,我使用SMTPClient发送电子邮件。为此,我们使用Outlook电子邮件帐户。直到今天,这一切都很顺利。我得到的错误代码如下: 邮箱不可用。服务器响应为:5.3.4554-554 5.2.0 STOREDRV.Deliver;交付结果横幅 下面是我在应用程序中使用的代码 var client = new SmtpClient { Host =

我有一个MVC.NETWeb应用程序,它已经稳定运行了一年的大部分时间。但是今天我们收到了一个错误代码,我很难找到解决问题的方法

在应用程序中,我使用SMTPClient发送电子邮件。为此,我们使用Outlook电子邮件帐户。直到今天,这一切都很顺利。我得到的错误代码如下:

邮箱不可用。服务器响应为:5.3.4554-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)

到目前为止,我尝试过的东西都不起作用

  • 登录outlook.live.com上的电子邮件帐户
  • 在outlook.live.com上更新电子邮件帐户的安全设置
  • 将smtp.live.com更改为smtp-mail.outlook.com
  • 将端口更改为25(这给了我相同的错误)和465(这给了我一个服务器未到达错误)
  • 将EnableSsl设置为false(当我这样做时,客户端不工作)
我在SO和其他网站上看到过一些类似的帖子,或者有相同的错误代码。但是他们要么没有回复,要么将登录电子邮件帐户作为解决方案,这对我来说不起作用

当我们登录到该电子邮件帐户时,我们收到了来自Microsoft的更新通知,其中谈到了新的隐私和安全更新。这是从9月16日开始的。我不知道是否有三个月的期限你需要同意。但一周前,该电子邮件帐户发送了一封电子邮件,昨天发送失败。我们同意弹出协议,但它仍然不起作用


有人知道我现在可以尝试什么,或者是什么导致了这个错误吗

好的,我在我的系统上解决了这个问题,如下所示:

我用一个不同的电子邮件地址发送邮件,与我发送邮件的帐户的电子邮件地址不同,如下所示:

string from = "email@somwhere.com";
所以我把它改成:

string from = "thecorrectemailaddress@outlook.com";
所以现在它工作得很好。。。快乐的日子

MailMessage mail = new MailMessage(from, to);

5.2.0 STOREDEV
的响应是由于电子邮件服务器上的SPF。

这里发生的事情是当你从
email@somwhere.com
您的电子邮件服务器尝试验证电子邮件是否合法。因此,它会询问
somwhere.com
允许哪些IP发送声称来自
somwhere.com
的电子邮件,因为你不拥有
somwhere.com
,它会告诉你的电子邮件客户端它是欺诈性的,而你的电子邮件客户端则干脆将其作为垃圾邮件拒绝


因此,当您将电子邮件更改为
…@outlook.com
时,outlook的SPF没有将其作为垃圾邮件拒绝,并且成功地通过了

我已在我的系统上解决了此问题,如下所示: 发件人地址应与以下电子邮件类似- 1."thecorrectemailaddress@outlook.com" 2."thecorrectemailaddress@hotmail.co.uk" 这里我使用“smtp.live.com”作为服务器域,端口是587。 如果防火墙有任何问题,您可以在防火墙中为同一端口587添加一条规则。

这也修复了错误“5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied;由于永久异常,无法处理消息,消息无法提交消息。”