Gmail发送错误(C#)

本文关键字:错误 Gmail | 更新日期: 2023-09-27 18:00:38

我试图通过C#发送电子邮件,但我一直收到这个错误:

SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。更多信息,请访问…

堆栈跟踪可以在这里找到:

System.Net.Mail.SmtpException:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。在了解更多信息

在System.Net.MailCommand.CheckResponse(SmtpStatusCode statusCode,字符串响应)

在System.Net.Mail.SmtpTransport.SendMail(MailAddress发件人、MailAddressCollection收件人、字符串deliveryNotify、布尔值allowUnicode、SmtpFailedRecipientException和exception)

在System.Net.Mail.SmtpClient.Send(MailMessage消息)

位于c:''2015 Hyrel Projects''Repetrel''src''Repetrel''View''EmailForm.cs:line 238 中的Repetrel.View.EmailForm.btSend_Click(Object sender,EventArgs e)

这是我的代码:

            NetworkCredential loginInfo = new NetworkCredential(Properties.Settings.Default.MyEmailAddress, Properties.Settings.Default.MyEmailPassword);
            //System.Net.Mail.SmtpClient smtpClient = new System.Net.Mail.SmtpClient(Properties.Settings.Default.SMTPAddress);
            ////Trace.WriteLine("smtp = " + Properties.Settings.Default.SMTPAddress);
            //smtpClient.Port = 587;
            //smtpClient.EnableSsl = true;
            //smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            ////smtpClient.UseDefaultCredentials = false;
            //smtpClient.Credentials = loginInfo;
            var smtpClient = new SmtpClient
            {
                Host = "smtp.gmail.com",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = true,
                Credentials = loginInfo,
                Timeout = 20000
            };
            //smtpClient.SendAsync(message, "test");
            smtpClient.Send(message);
            //Output to log
            OutputToLog(message);
            //Close Window
            Close();
        }
        catch (Exception ex)
        {
            Trace.WriteLine(ex.ToString());
            MessageBox.Show("An error occurred.  Please see the trace log for more information.");
        }

我试过以前帖子中提到的所有东西(有很多),但似乎都不起作用。我尝试过使用和不使用默认凭据,并将标志设置为false/true。似乎什么都不管用。有人能给我指一个正确的方向吗?

提前感谢!

Gmail发送错误(C#)

显然GMAIL阻止我的电子邮件地址使用不太安全的设备。您可以在以下位置关闭阻止:https://www.google.com/settings/security/lesssecureapps.

也许是UseDefaultCredentials = false,

编辑:这似乎类似于一个旧的StackOverflow问题:带有Gmail 的SmtpClient