![](/img/trans.png)
[英]MailMessage System.Net.Mail.SmtpException, Error when trying to send email via C# form
[英]C# : SmtpException thrown when trying to send an email
运行时,以下代码将引发此异常:“其他信息: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不在代码变量中,我只是不会放弃该帐户)
我已经搜索了一段时间,因为似乎很多人都可以得到此错误,但是在所有情况下都可以轻松解决(例如添加凭据或内容),但是在我的代码中情况并非如此。
奇怪的是,这就是为什么我不明白它的原因,两个月前它起作用了……我们能够发送有关已生成的新密码的电子邮件。 在过去的两个月中,我没有看过这段代码,所以idk,也许有人删除了1行,但我不知道是哪一行?
在调试代码时,我检查了所有变量,并使用正确的值等将它们填满。
我们还尝试创建一个新的虚拟帐户进行测试,将其放入myEmailAddress和myPass中,但它也不能正常工作。
我知道很多人之前都曾问过这个问题,但我似乎找不到它,这使我感到难以置信。
感谢您查看这个!
耶
尝试修改这段代码:
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。
属性设置的顺序可能会有所不同。
我很确定我已经看到了类似的问题,并且重新排序了。 不过,我可能记错了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.