试图发送电子邮件时抛出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 &我的通行证,它不会工作得很好:

我知道很多人问&以前问过这个问题,但我似乎就是找不到它,它让我难以置信的困扰…

谢谢你的调查!

.

试图发送电子邮件时抛出SmtpException

尝试修改这段代码:

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

属性的设置顺序可能会产生影响。

我很确定我见过类似的问题,重新排序是有效的。不过我可能记错了。