Cannot send email through Hotmail / live.com / outlook.com

时光总嘲笑我的痴心妄想 提交于 2019-12-06 08:01:05

问题


I have read other answers on the stackoverflow. but none of the solutions work for me.

I'm trying to send email through live.com, but unable to it.

The error message:

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

or error message:

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

The code:

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

Are you able to send the email by using above code?
It works before, last year, but it is no more working now.
I'm not sure what has been changed to live.com email server.
What new settings or parameters should apply?


回答1:


I ran into an issue where I was unable to send emails using the smtp.live.com SMTP server from certain hosts -- particulary Azure hosts. In my case, the SMTP attempt was from a host that I had never used to sign-in previously, so the attempt was blocked with the 5.7.3 error:

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

The solution was to browse to the account settings, locate the SMTP request in its recent activity, and select "This was me":




回答2:


Tested and it works (different host address and a few other property set):

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



回答3:


Also, if the account has two-step verification turned on, you'll have to generate an app password and use that instead.




回答4:


Your code works for me without any changes with a live.com address. I am able to generate the same exception by simply putting an incorrect password.

I would suggest following checks:

  1. Did the user change password recently? Are you able to login with the credentials provided over the web interface?
  2. if yes, does your program uses the exact same credentials? please note that white space can be your enemy.


来源:https://stackoverflow.com/questions/25224768/cannot-send-email-through-hotmail-live-com-outlook-com

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!