运行时,以下代码抛出此异常: "其他信息:SMTP服务器需要安全连接或客户端未经过身份验证。服务器响应为:5.5.1需要身份验证。 "
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个月前它工作了......我们能够发送有关已经生成的新密码等的电子邮件。在过去的两个月里我没有看过这段代码,所以idk,也许有人删掉了1行,我只是无法找出哪一行?
在调试代码时,我已经检查了所有变量,并且它们填满了正确的值等等。
我们还尝试制作一个新的虚拟帐户进行测试,将其放入myEmailAddress& myPass,它也不会起作用:。
我知道很多人会问&我之前已经问过这个问题,但我似乎无法找到它并且它让我超越了可信的措施...
感谢您对此进行调查!
JEP。
答案 0 :(得分:0)
尝试修改这段代码:
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 。
设置属性的顺序可能会有所不同。
我很确定我已经看到过类似的问题并重新排序。不过,我可能会记错了。