l'authentification ou le décryptage a échoué lors de l'envoi de messages à GMail en utilisant SSL

Je fais référence à ce guide sur les C# SMTP mail.

Voici mon code:

MailMessage mail = new MailMessage();
SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
mail.From = new MailAddress("[email protected]");
mail.To.Add("[email protected]");
mail.Subject = "Test Mail";
mail.Body = "This is for testing SMTP mail from GMAIL";
SmtpServer.Port = 587;
SmtpServer.Credentials = new System.Net.NetworkCredential("MyUserNameInGmail", "MyGmailPassWord");
SmtpServer.EnableSsl = true;

SmtpServer.Send(mail);

Malheureusement, il y a une exception concernant le protocole SSL et je ne peux pas résoudre le problème:

Exception Non Gérée:
Système.Net.Mail.SmtpException: Message
n'a pas pu être envoyé. --->
Système.IO.IOException: L'
l'authentification ou le déchiffrement a
a échoué. --->
Système.InvalidOperationException: SSL
erreur d'authentification:
RemoteCertificateNotAvailable,
RemoteCertificateChainErrors à
Système.Net.Mail.SmtpClient.m__4
(Le système.Object sender,
Système.De sécurité.La cryptographie.X509Certificates.X509Certificate
certificat,
Système.De sécurité.La cryptographie.X509Certificates.X509Chain
la chaîne, SslPolicyErrors
sslPolicyErrors) [0x00000]
:0 à
Système.Net.De sécurité.SslStream+c__AnonStorey7.<>m__
(Le système.De sécurité.La cryptographie.X509Certificates.X509Certificate
cert, Système.Int32[] certErrors)
[0x00000]: 0
au
Mono.De sécurité.Le protocole.Tls.SslClientStream.OnRemoteCertificateValidation
(Le système.De sécurité.La cryptographie.X509Certificates.X509Certificate
certificat du Système.Int32 [erreurs])
[0x00000]: 0
au
Mono.De sécurité.Le protocole.Tls.SslStreamBase.RaiseRemoteCertificateValidation
(Le système.De sécurité.La cryptographie.X509Certificates.X509Certificate
certificat du Système.Int32 [erreurs])
[0x00000]: 0
au
Mono.De sécurité.Le protocole.Tls.SslClientStream.RaiseServerCertificateValidation
(Le système.De sécurité.La cryptographie.X509Certificates.X509Certificate
certificat du Système.Int32[]
certificateErrors) [0x00000]
:0 à
Mono.De sécurité.Le protocole.Tls.Poignée de main.Client.TlsServerCertificate.validateCertificates
(Mono.De sécurité.X509.X509CertificateCollection
certificats) [0x00000]: 0 à
Mono.De sécurité.Le protocole.Tls.Poignée de main.Client.TlsServerCertificate.ProcessAsTls1
() [0x00000]: 0
au
Mono.De sécurité.Le protocole.Tls.Poignée de main.HandshakeMessage.Processus
() [0x00000]: 0
(wrapper
remoting-invoke-avec-check)
Mono.De sécurité.Le protocole.Tls.Poignée de main.HandshakeMessage:Processus
() à
Mono.De sécurité.Le protocole.Tls.ClientRecordProtocol.ProcessHandshakeMessage
(Mono.De sécurité.Le protocole.Tls.TlsStream
handMsg) [0x00000]: 0 à
Mono.De sécurité.Le protocole.Tls.RecordProtocol.InternalReceiveRecordCallback
(IAsyncResult asyncResult) [0x00000]
dans :0 --- Fin de
intérieure trace de pile d'exception --- à
Mono.De sécurité.Le protocole.Tls.SslStreamBase.AsyncHandshakeCallback
(IAsyncResult asyncResult) [0x00000]
dans :0 --- Fin de
intérieure trace de pile d'exception --- à
Système.Net.Mail.SmtpClient.Envoyer
(Le système.Net.Mail.MailMessage message)
[0x00000]: 0
au csharpdungeon.MainClass.Main ()
[0x00000]: 0

source d'informationauteur David Stockinger