2017-08-29 13 views
0

Ich verwende den folgenden Code und erhalte einen Fehler, wenn ich versuche, eine Verbindung zum SMTP-Server herzustellen. Ich gebe keine Authentifizierungsdaten für den Zugriff darauf.Beim Versuch, eine Verbindung mit dem SMTP-Server herzustellen, wird ein Fehler angezeigt "199.201.221.19"

var client = new SmtpClient() 
await client.ConnectAsync("199.201.221.19", 587, false); 
client.Send(mail); 

Host-: 199.201.221.19 Hafen: 587 Fehler: System.Security.Authentication.AuthenticationException: Das Remote-Zertifikat der Validierungsverfahren gemäß ungültig ist. Was ist das eigentliche Problem und was ist die mögliche Lösung dafür?

Antwort

0

Der Fehler bezieht sich auf einen SSL/TLS-Zertifikat-Validierungsfehler. Dies bedeutet, dass das SSL-Zertifikat Ihres Servers nicht mit den Standard-Root-CA-Zertifikaten von .NET überprüft wird.

Obwohl Sie in Ihrem ConnectAsync() - Methodenaufruf useSsl als false angegeben haben, wird MailKit weiterhin in den TLS-Modus geschaltet, wenn der Server STARTTLS unterstützt. Der Parameter useSsl ist wirklich nur nützlich, um MailKit mitzuteilen, ob der Port von Anfang an SSL erfordert (wie bei ssl-Wrapped-Ports wie 993 für IMAP/S, 995 für POP/S und 465 für SMTP/S).

Sie haben 2 Möglichkeiten zum Beheben des Problems:

  1. Folgen Sie den Anweisungen für diesen Fehler in der FAQ: https://github.com/jstedfast/MailKit/blob/master/FAQ.md#InvalidSslCertificate
  2. eine andere ConnectAsync Methode verwenden, die Sie nicht versuchen STARTTLS angeben können: Client. ConnectAsync (Host, Port, SecureSocketOptions.None);
Verwandte Themen