简体   繁体   中英

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

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?

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":

验证SMTP尝试

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

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

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM