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

时间:2014-08-10 01:43:43

标签: c# email hotmail

我已经在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电子邮件服务器有什么变化 应该使用哪些新设置或参数?

4 个答案:

答案 0 :(得分:5)

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

  

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

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

Verify the SMTP attempt

答案 1 :(得分:1)

经过测试并且有效(不同的主机地址和其他一些属性集):

        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);
            }
        }

答案 2 :(得分:1)

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

答案 3 :(得分:0)

您的代码适用于我,而不会对live.com地址进行任何更改。我只需输入错误的密码即可生成相同的异常。

我建议进行以下检查:

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