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の確認によると、このコード行を削除する必要があります

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 に答える