ASP.NET c# -从Outlook Live SMTP服务器发送电子邮件

本文关键字:服务器 SMTP 电子邮件 Live Outlook NET ASP | 更新日期: 2023-09-27 18:02:02

我正在努力尝试从。net应用程序发送电子邮件。

{"Mailbox unavailable. The server response was: 5.7.3 Requested action aborted; user not authenticated"}    System.Exception {System.Net.Mail.SmtpException}

现在,这似乎表明(至少从我有限的理解来看)我的凭证有问题,即我的电子邮件地址和密码。

问题在这里。我用雅虎的电子邮件地址登录我的微软账户。这是我作为凭证的一部分提供的地址。如果这是不正确的,我在哪里可以找到合适的电子邮件地址,或者我可能错过了什么?

  try
            {
                SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 587);
                smtpClient.EnableSsl = true;
                smtpClient.Credentials = new System.Net.NetworkCredential("kelly*******@yahoo.com", "myMicrosoftPassword");
                smtpClient.UseDefaultCredentials = true;
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                MailMessage mail = new MailMessage();
                //Setting From , To and CC
                mail.From = new MailAddress("kelly*******@yahoo.com", "Kelly");
                mail.To.Add(new MailAddress("recipeint@email.com"));

                smtpClient.Send(mail);

            } 
            catch (Exception ex)
            {
                Console.Write(ex.Message);
            }

谢谢!

ASP.NET c# -从Outlook Live SMTP服务器发送电子邮件

尝试使用下面的框架来发送邮件:请注意证书部分。请注意,有些提供商需要对您的身份验证帐户进行额外配置才能使用他们的服务(例如:Google)

using( var mail = new System.Net.Mail.MailMessage() )
{
    mail.From = new System.Net.Mail.MailAddress( fromAddress );
    mail.Subject = subject;
    mail.Body = body;               
    foreach( var attachment in attachments )
       mail.Attachments.Add( new Attachment( attachment ) );
    foreach( var address in toAddresses )
       mail.To.Add( address );
    using( var smtp = new System.Net.Mail.SmtpClient( smtpAddress, smtpPort ) )
    {
        smtp.EnableSsl = enableSsl;
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new NetworkCredential( authUserName, authPassword );
        ServicePointManager.ServerCertificateValidationCallback =
        ( sender, certificate, chain, sslPolicyErrors ) => true;
        smtp.Send( mail );
    }
}

我已经搜索了一些东西,我没有找到任何东西。你试过使用雅虎短信服务器吗?

smtp.mail.yahoo.com

我认为它不起作用,因为微软使用其他电子邮件地址只是为了创建自己的帐户,用户可以访问其他服务。关于电子邮件服务,我认为微软使用其他smtp服务器。例如,如果你用不是微软的电子邮件从hotmail或outlook发送电子邮件,但你曾经注册并创建了一个微软帐户,我认为该程序不会使用微软服务器,而是使用雅虎服务器。

我曾经参与过一个需要实现SMTP的项目。主要区别在于DefaultCredentials的使用。试着改变它,看看它是否有效。如果你已经尝试过了,也许可以尝试使用另一个电子邮件帐户,问题也可能存在。我是这样做的:

 public void SendEmail(string recipient, string subject, string text)
    {
        //The smtp and port can be adjusted, deppending on the sender account
        SmtpClient client = new SmtpClient(_smtpHostServer);
        client.Port = _smtpHostPort;
        client.DeliveryMethod = SmtpDeliveryMethod.Network;
        client.UseDefaultCredentials = false;
        try
        {
            System.Net.NetworkCredential credentials =
                new System.Net.NetworkCredential(_serveraddress, _serverpassword);
            client.EnableSsl = true;
            client.Credentials = credentials;
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        //Creates a new message
        try {
            var mail = new MailMessage(_serveraddress.Trim(), recipient.Trim());
            mail.Subject = subject;
            mail.Body = text;
            client.Send(mail);
        }
        //Failing to deliver the message or to authentication will throw an exception
        catch (Exception ex){
            Console.WriteLine(ex.Message);
            throw;
        }
    }