无法通过Hotmail / live.com / outlook.com发送电子邮件

我已经在stackoverflow上阅读了其他答案。 但这些解决方案都不适合我。

我正在尝试通过live.com发送电子邮件,但无法使用它。

错误消息:

mailbox unavailable. The server response was: 5.7.3 requested action aborted; user not authenticated 

或错误信息:

 System.Net.Mail.SmtpException: Service not available, closing transmission channel. The server response was: Cannot connect to SMTP server 65.55.176.126 (65.55.176.126:587), NB connect error 1460 

代码:

 MailMessage mail = new MailMessage(); mail.From = new MailAddress("email@live.com"); mail.To.Add("someone@someone.com"); mail.Subject = "hello"; mail.Body = "awefkljj kawefl"; mail.IsBodyHtml = false; SmtpClient smtp = new SmtpClient("smtp.live.com", 587); smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential("email@live.com", "password"); smtp.Send(mail); 

您是否可以使用上述代码发送电子邮件?
它在去年之前有效,但它现在已经不复存在了。
我不确定live.com电子邮件服务器有什么变化。
应该应用哪些新设置或参数?

我遇到了一个问题,我无法使用某些主机的smtp.live.com SMTP服务器发送电子邮件 – 特别是Azure主机。 在我的情况下,SMTP尝试来自我以前从未用于登录的主机,因此尝试被5.7.3错误阻止:

信箱不可用。 服务器响应为:5.7.3请求的操作中止; 用户未经过身份validation

解决方案是浏览到帐户设置,在最近的活动中找到SMTP请求,然后选择“这是我”:

验证SMTP尝试

测试并且它可以工作(不同的主机地址和一些其他属性集):

  using (var client = new SmtpClient("smtp-mail.outlook.com") { Port = 587, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, EnableSsl = true, Credentials = new NetworkCredential(_sender, _password) }) { using (var mail = new MailMessage(_sender, _recipient) { Subject = _subject, Body = _message }) { client.Send(mail); } } 

此外,如果帐户启用了两步validation,则您必须生成应用密码并使用该密码。

您的代码适用于我,而不会对live.com地址进行任何更改。 我可以通过简单地输入错误的密码来生成相同的exception。

我建议以下检查:

  1. 用户最近是否更改了密码? 您是否可以使用通过Web界面提供的凭据登录?
  2. 如果是,您的程序是否使用完全相同的凭据? 请注意,白色空间可能是你的敌人。