1

我正在尝试发送电子邮件,尽管返回了一条错误消息:

根据验证程序,远程证书无效

我的代码如下:

   static void sendEmail()
        {
            var fromAddress = new MailAddress("xxxxxxxx@xxxxxxxx", "xxxxxxx");
            var toAddress = new MailAddress("xxxxxxxx@xxxxxxxx", "xxxxxxxx");
            const string fromPassword = "xxxxxxxxxxxx";
            const string subject = "xxxxxxxxxxxxxxxxxxxxx";

            var smtp = new SmtpClient
            {
                Host = "mailserver",
                Port = 587,
                EnableSsl = true,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false,
                Credentials = new NetworkCredential("username", fromPassword)
            };
            using (var message = new MailMessage(fromAddress, toAddress)
            {
                Subject = subject,
                Body = bodyglobal
            })
            {
                smtp.Send(message);
            }

        }
4

2 回答 2

1

尝试设置

 EnableSsl = false;

几周前我遇到了这个问题,这就是解决方法。如果您的程序不需要/使用 SSL,则 smtpexecption 将触发该错误消息。

于 2012-05-31T15:31:39.847 回答
0

发送电子邮件取决于 SMTP 服务器的配置方式。

根据 gmail confiruged 你需要删除这行代码

UseDefaultCredentials = false,

只需评论此行,您的消息就会被发送。

 var smtp = new SmtpClient
        {
            Host = "mailserver",
            Port = 587,
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            // do not use this command
           // UseDefaultCredentials = false,
            Credentials = new NetworkCredential("username", fromPassword)
        };

Microsoft 建议尽可能不要使用 defaultcredentials。看到 这个

于 2012-05-31T15:46:12.353 回答