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阻止我的电子邮件地址使用不太安全的设备。您可以在以下位置关闭阻止:https://www.google.com/settings/security/lesssecureapps.
也许是UseDefaultCredentials = false,
?
编辑:这似乎类似于一个旧的StackOverflow问题:带有Gmail 的SmtpClient