试图发送电子邮件时抛出SmtpException
本文关键字:SmtpException 电子邮件 | 更新日期: 2023-09-27 18:02:07
当运行时,下面的代码会抛出这个异常:"附加信息:SMTP服务器需要安全连接,或者客户端未通过身份验证。"服务器响应为:5.5.1 Authentication Required。"
public static void VerzendMail(Mail opgesteldeMail)
{
MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress(opgesteldeMail.Verzender);
mail.To.Add(opgesteldeMail.Ontvanger.Email);
mail.Subject = opgesteldeMail.Onderwerp;
mail.Body = opgesteldeMail.Data;
SmtpServer.Port = 587;
SmtpServer.Credentials = new NetworkCredential("myEmailAddress", "myPass");
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Send(mail);
}
(myEmailAddress,myPass不在代码变量中,我只是不会给帐户)
我已经搜索了一段时间了,因为似乎很多人都可以得到这个错误,但在他们所有的情况下,它很容易解决(如添加凭据或东西),但这似乎不是我的代码中的情况。
奇怪的是,这就是为什么我只是不明白,2个月前它工作…我们可以发送关于新密码的电子邮件。我在过去的2个月里没有看过这段代码,所以idk,也许有人删除了一行,我只是不知道是哪一行?
在调试代码时,我检查了所有变量,它们都很好,具有正确的值等。
我们还尝试创建一个新的虚拟帐户进行测试,将其放在myEmailAddress &我的通行证,它不会工作得很好:
我知道很多人问&以前问过这个问题,但我似乎就是找不到它,它让我难以置信的困扰…
谢谢你的调查!
中.
尝试修改这段代码:
SmtpServer.Credentials = new NetworkCredential("myEmailAddress", "myPass");
SmtpServer.EnableSsl = true;
SmtpServer.UseDefaultCredentials = false;
:
SmtpServer.UseDefaultCredentials = false;
SmtpServer.Credentials = new NetworkCredential("myEmailAddress", "myPass");
SmtpServer.EnableSsl = true;
换句话说,在设置要使用的凭证之前,尝试禁用UseDefaultCredentials 。
属性的设置顺序可能会产生影响。
我很确定我见过类似的问题,重新排序是有效的。不过我可能记错了。