GMail SMTP via C# .Net-Fehler auf allen ports
Ich versucht habe, eine whlie, und die haben bisher versagt kläglich. Mein letzten Versuch war, hob aus diesem Stapel code hier: Senden von E-Mails über Google Mail SMTP-server mit C#, aber ich habe versucht, all die syntax, die ich finden konnte, hier auf den Stapel und anderswo. Mein code derzeit:
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("[email protected]", "mypass"),
EnableSsl = true
};
client.Send("[email protected]","[email protected]","Test", "test message");
Ausgeführt, dass der code gibt mir eine sofortige Ausnahme "Fehler beim senden von mail", die eine innerexeption "unable to connect to remote server".
Wenn ich den port auf 465 (wie gmail, docs empfehlen), bekomme ich einen timeout jedes mal.
Ich habe gelesen, dass die 465 ist kein guter port zu verwenden, so Frage ich mich, was ist der deal w/587 gibt mir Fehler beim verbinden. Meine user und pass sind richtig. Ich habe gelesen, dass ich POP-Dienst-setup auf mein gmail-Konto, also Tat ich das. Ohne Erfolg.
War ich ursprünglich versucht, um diese Arbeit für meine Marken-GMail-Konto, aber nach dem ausführen in die gleichen Probleme w/, dass ich dachte gehen w/meiner regulären gmail-Konto wäre einfacher... so weit das ist nicht der Fall.
Ja, kann ich, und ja, habe ich.
InformationsquelleAutor Paul | 2009-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich versuchte Ihren code, und es funktioniert prefectly mit port 587, aber nicht mit dem 465.
Haben Sie überprüft, die fire wall? Versuchen Sie es von der Kommandozeile "Telnet smtp.gmail.com 587"
Wenn Sie "220 mx.google.com ESMTP...." zurück, dann ist der port offen. Wenn nicht, ist es etwas, dass Blöcke, die Sie nennen.
Daniel
Hallo, ich habe versucht, diesen test in telnet , es funktionierte (ich habe 220 mx.google.com ESMTP), aber wenn ich versuchen, senden von E-mail verwenden .net 2.0 app, bekomme ich
Server does not support secure connections.
weißt du, was das problem verursachtKann mir bitte jemand einen Blick hier haben? stackoverflow.com/questions/52386437/...
InformationsquelleAutor Daniel Svalefelt
Ich lief in dieses problem vor einer Weile auch. Das problem ist, dass SmtpClient unterstützt keine implizite SSL-verbindungen, unterstützt jedoch explizite verbindungen (System.Net.Mail mit SSL zu authentifizieren, port 465). Die Vorherige Klasse MailMessage (glaube ich .Net 1.0) unterstützt hat, dies aber seit langem obsolet.
Meine Antwort war zu rufen die CDO (Collaborative Data Objects) (http://support.microsoft.com/kb/310212) direkt über die COM-über etwas wie den folgenden:
Vergessen Sie nicht, durchsuchen Sie Ihren COM-Verweise, und fügen Sie die "Microsoft CDO für Windows 200 Bibliothek", die hinzufügen sollten zwei Referenzen: ADODB-und CDO.
InformationsquelleAutor Bryan Allred
Ich implementiert eine E-Mail-client irgendwann wieder, der reden konnte, um Google Mail auf beide 587 und 465...
Port 25 ist der normale unverschlüsselte pop-port, die Sie nicht auf Google Mail.
Den anderen zwei ports-Verschlüsselung; 587 mit TLS, 465 SSL verwendet.
Verwenden 587 sollten Sie SmtpClient.EnableSsl = true.
465 wird nicht funktionieren mit SmtpClient, es wird funktionieren mit der veralteten Klasse SmtpMail statt.
Vielen Dank für die Informationen
InformationsquelleAutor
Versuchen Sie diesen link http://www.google.com/accounts/DisplayUnlockCaptcha auf dem server.
Business Google Mail-Konten, (oder normale gmail-Konten nicht sicher über diese), erfordert ein DisplayUnlockCaptcha für die sehr erste Zeit.
InformationsquelleAutor Fevzi Apaydın
Ich hatte das gleiche problem, war aber nicht die Freiheit zu ändern, meine Unternehmens-firewall-Einschränkungen. Auf der Grundlage der von den Notizen auf dieses Google-doc, zusammen mit erdenetsogt Antwort oben, ich habe versucht, mit port 25 und es funktionierte. (Zuerst war ich besorgt, dass über den port 25 könnte bedeuten, dass die Nachricht kann nicht verschlüsselt werden; so habe ich mich EnableSSL auf false, was dazu führte, gmail, ihn abzulehnen, weil die StartTLS nie genannt wurde. Dies führt mich zu glauben, dass gmail ist die Durchsetzung der Expliziten SSL auch über port 25).
InformationsquelleAutor kmote
Ihrem privaten Netzwerk, die firewall blockiert die ports 587 und 465. Sie können verwenden Sie die Standard-port 25 aktivieren oder gibt es ports auf der firewall
InformationsquelleAutor erdenetsogt
Gibt es zwei Möglichkeiten, das zu tun SMTP über SSL: Explizite und Implizite. Explicit bedeutet, dass Sie eine Verbindung zu einem normalen SMTP-port (in der Regel 25 oder 587) in Klartext, dann Frage das "starttls" - Kommando zu wechseln, um den SSL-Modus. Implizit bedeutet, dass Sie eine Verbindung zu einem port, der erwartet, dass alles um SSL (normalerweise 465).
Asp.net verwenden Sie “System.Net.E-Mail.SmtpClient ()", um E-Mail senden. Das Hauptproblem ist SmtpClient unterstützt keine implizite SSL-verbindungen, unterstützt jedoch explizite verbindungen (System.Net.Mail mit SSL zu authentifizieren, port 465). So, wenn der mail-server(SMTP) unterstützen keine Explizite Verbindung, schlägt Sie E-Mails senden und zeigen Meldungen wie “Connection timeout“, “Die Nachricht konnte nicht gesendet werden an den SMTP-server. Der transport Fehlercode war 0x80040217. Die Serverantwort war nicht verfügbar" usw.
Um dieses Problem zu lösen in ASP.net wir können die Verwendung von Collaboration Data Objects (CDO) für Windows 2000 Bibliothek (Cdosys.dll) zum senden einer e-mail-Nachricht mit Anhängen. Microsoft Outlook verwendet diese DLL zum senden von E-Mail. In Ihrem ASP.net die Lösung, die Sie hinzufügen müssen, um die Referenz “Microsoft CDO for windows 2000 Library“. Es werden zwei markierte dll im Bin-Ordner.
Nun die Balg-code in C#.net:
In VB.net
Referenz:
Original post
Implizite & Explizite SMTP http://help.fogcreek.com/9002/using-an-smtp-server-with-ssl
verwenden Sie die Cdosys.dll Bibliothek zum senden einer e-mail-Nachricht mit Anlagen https://support.microsoft.com/en-us/help/310212/how-to-use-the-cdosys-dll-library-to-send-an-e-mail-message-with-attac
InformationsquelleAutor Debashis Chowdhury