SMTP服务器身份验证错误

本文关键字:错误 身份验证 服务器 SMTP | 更新日期: 2023-09-27 18:29:02

我正在开发一个应用程序,如果调用全局线程异常,我想在该应用程序中向电子邮件发送崩溃报告。然而,每次我尝试发送此电子邮件时,我都会收到错误

SMTP服务器需要安全连接,或者客户端没有经过身份验证。服务器响应为:5.5.1需要身份验证。了解更多信息,请访问。<--错误消息到此结束,这看起来很奇怪。

我的异常事件处理程序如下:

private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        MailAddress fromAddress = new MailAddress("user@domain.com", "Mary");
        MailAddress toAddress = new MailAddress("user@domain.com", "Sam");
        const string fromPassword = "password";
        const string subject = "Exception Report";
        Exception exception = e.ExceptionObject as Exception;
        string body = exception.Message + "'n" + exception.Data + "'n" + exception.StackTrace + "'n" + exception.Source;
        var smtp = new SmtpClient
        {
            Host = "smtp.gmail.com",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            UseDefaultCredentials = false,
            Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
        };
        using (MailMessage message = new MailMessage(fromAddress, toAddress)
        {
            Subject = subject,
            Body = body
        })
        {
            try
            { 
                smtp.Send(message);
            }
           catch(Exception err)
            {
                Console.WriteLine("Could not send e-mail. Exception caught: " + err);
            }
        }
    }

有人知道我为什么会出现服务器身份验证错误吗?

SMTP服务器身份验证错误

谷歌可能会阻止一些不使用现代安全标准的应用程序或设备的登录尝试。由于这些应用程序和设备更容易侵入,因此阻止它们有助于确保您的帐户更安全。

一些不支持最新安全标准的应用程序示例包括:

  • iOS 6或更低版本的iPhone或iPad上的Mail应用程序
  • 8.1版本之前Windows手机上的Mail应用程序
  • 一些桌面邮件客户端,如Microsoft Outlook和Mozilla Thunderbird

因此,您必须在您的谷歌帐户中启用Less Secure Sign-In

登录谷歌帐户后,转到:

https://www.google.com/settings/security/lesssecureapps