Aus irgendeinem Grund funktionieren für mich weder die akzeptierte noch andere Antworten für " Senden von E-Mails in .NET über Google Mail ". Warum sollten sie nicht arbeiten?
UPDATE: Ich habe alle Antworten (akzeptiert und anderweitig) in der anderen Frage ausprobiert, aber keine davon funktioniert.
Ich möchte nur wissen, ob es für andere funktioniert, andernfalls hat Google möglicherweise etwas geändert (was zuvor passiert ist).
Wenn ich den verwendeten Code ausprobiere SmtpDeliveryMethod.Network
, erhalte ich beim Senden (Nachricht) schnell eine SmtpException. Die Nachricht ist
Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert.
Die Serverantwort lautete:
5.5.1 Authentifizierung erforderlich. Erfahren Sie mehr unter "<- im Ernst, es endet dort.
AKTUALISIEREN:
Dies ist eine Frage, die ich vor langer Zeit gestellt habe, und die akzeptierte Antwort ist Code, den ich viele, viele Male in verschiedenen Projekten verwendet habe.
Ich habe einige der Ideen in diesem Beitrag und anderen EmailSender-Projekten übernommen, um ein EmailSender-Projekt bei Codeplex zu erstellen . Es wurde für Testbarkeit entwickelt und unterstützt meine bevorzugten SMTP-Dienste wie GoDaddy und Gmail.
Antworten:
CVertex, überprüfen Sie Ihren Code und veröffentlichen Sie ihn, wenn sich daraus nichts ergibt. Ich habe dies nur auf einer ASP.NET-Testwebsite aktiviert, an der ich gearbeitet habe, und es funktioniert.
Eigentlich hatte ich irgendwann ein Problem mit meinem Code. Ich habe es erst entdeckt, als ich eine einfachere Version eines Konsolenprogramms hatte und sah, dass es funktioniert (keine Änderung auf der Google Mail-Seite, da Sie sich Sorgen machten). Der folgende Code funktioniert genau wie die Beispiele, auf die Sie sich bezogen haben:
Ich habe es auch mit einer Kombination aus web.config, http://msdn.microsoft.com/en-us/library/w355a94k.aspx und Code zum Laufen gebracht (da
EnableSsl
die Konfigurationsdatei keine Übereinstimmung enthält :().quelle
Das Folgende wird mit ziemlicher Sicherheit die ANTWORTEN, auf Ihre Frage , wenn alle HAT GEGEN ELSE :
Ich habe genau den gleichen Fehler erhalten. Es hat sich herausgestellt, dass der neue Algorithmus zur Messung der Passwortstärke von Google mein aktuelles Passwort als zu schwach eingestuft hat und mir nichts darüber erzählt hat (nicht einmal eine Nachricht oder Warnung). Wie habe ich das entdeckt? ? Nun, ich habe mich entschieden, mein Passwort zu ändern, um zu sehen, ob es helfen würde (alles andere ohne Erfolg versucht), und als ich mein Passwort geändert habe, hat es funktioniert!
Für ein Experiment habe ich dann versucht, mein Kennwort wieder auf mein vorheriges Kennwort zu ändern, um zu sehen, was passieren würde. Google Mail hat mir dies nicht erlaubt. Ich habe den Grund "Entschuldigung, wir können Ihnen nicht erlauben, diese Änderung als von Ihnen ausgewählt zu speichern." Passwort ist zu schwach "und würde mich nicht zu meinem alten Passwort zurückkehren lassen. Ich habe daraus herausgefunden, dass es ein Fehler war, weil entweder a) Sie Ihr Passwort alle x Monate einmal ändern müssen oder b). Wie ich bereits sagte, änderten sich ihre Algorithmen zur Passwortstärke und daher wurde das schwache Passwort, das ich hatte, nicht akzeptiert, obwohl sie nichts darüber sagten, als sie versuchten, sich ÜBERALL anzumelden! Dies (Nummer 2) ist das wahrscheinlichste Szenario, da mein schwaches Passwort ungefähr 4 Monate alt war und ich es in Google Mail verwenden konnte.
Es ist ziemlich schlimm, dass sie nichts darüber gesagt haben, aber es macht Sinn. Da die meisten entführten E-Mails mit Software außerhalb von Google Mail angemeldet sind und Sie vermutlich ein stärkeres Kennwort benötigen, wenn Sie Google Mail außerhalb der Google Mail-Umgebung verwenden möchten.
Ich hoffe das hilft!
quelle
Zusätzlich zu den anderen oben genannten Schritten zur Fehlerbehebung möchte ich hinzufügen, dass Sie, wenn Sie die Zwei-Faktor-Authentifizierung (auch als zweistufige Überprüfung bezeichnet ) in Ihrem GMail-Konto aktiviert haben , ein anwendungsspezifisches Kennwort generieren und dieses neu verwenden müssen generiertes Passwort zur Authentifizierung über SMTP .
Um eine zu erstellen, besuchen Sie: https://www.google.com/settings/ und wählen Sie Anwendungen und Websites autorisieren , um das Kennwort zu generieren.
quelle
Link zur Google Mail-Einstellung
quelle
Ich hatte auch einige Probleme beim Senden von E-Mails von meinem Google Mail-Konto, die auf mehrere der oben genannten Situationen zurückzuführen waren. Hier ist eine Zusammenfassung, wie ich es zum Laufen gebracht und gleichzeitig flexibel gehalten habe:
Und wann immer Sie E-Mails senden möchten, müssen Sie nur noch anrufen
SSLMail.SendMail
:zB auf einer Seite mit einem PasswordRecovery-Steuerelement:
Oder irgendwo in Ihrem Code können Sie anrufen:
Ich hoffe das hilft jedem, der auf diesen Beitrag stößt! (Ich habe VB.NET verwendet, aber ich denke, es ist trivial, es in eine beliebige .NET-Sprache zu konvertieren.)
quelle
Wenn Sie eine Fehlermeldung wie "Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich. Weitere Informationen unter", wie ich zuvor erhalten habe, stellen Sie sicher, dass die Zeile
SMTPClientObj.UseDefaultCredentials = False
und diese Zeile enthalten sind sollte vor demSMTPClientObj.Credentials
.Ich habe versucht, diese beiden Zeilen in die entgegengesetzte Richtung zu wechseln, und der Fehler 5.5.1 Authentifizierung erforderlich wurde zurückgegeben.
quelle
Oh ... Es ist erstaunlich ... Zuerst konnte ich aus irgendeinem Grund keine E-Mail senden. Aber nachdem ich die Reihenfolge dieser beiden Zeilen wie folgt geändert habe, funktioniert es perfekt.
Ich hoffe das hilft!!! :) :)
quelle
Das Problem liegt nicht in der technischen Fähigkeit, über Google Mail zu senden. Das funktioniert in den meisten Situationen. Wenn Sie einen Computer nicht zum Senden bringen können, liegt dies normalerweise daran, dass der Computer mindestens einmal nicht mit einem Menschen an der Steuerung authentifiziert wurde.
Das Problem, mit dem die meisten Nutzer konfrontiert sind, besteht darin, dass Google beschließt, die Grenzwerte für ausgehende Nachrichten ständig zu ändern. Sie sollten Ihrer Lösung immer Verteidigungscode hinzufügen. Wenn Sie Fehler sehen, verringern Sie Ihre Sendegeschwindigkeit und hören Sie für eine Weile auf zu senden. Wenn Sie weiterhin versuchen, Google zu senden, verlängert sich Ihre Verzögerungszeit manchmal um zusätzliche Zeit, bevor Sie erneut senden können.
Was ich in meinem aktuellen System getan habe, ist das Senden mit einer Verzögerung von 1,5 Sekunden zwischen jeder Nachricht. Wenn ich dann Fehler bekomme, halte für 5 Minuten an und beginne dann erneut. Dies funktioniert normalerweise und ermöglicht es Ihnen, bis an die Grenzen des Kontos zu senden (zuletzt habe ich überprüft, dass es 2.000 für erstklassige Kundenanmeldungen pro Tag waren).
quelle
Einfache Schritte, um dies zu beheben:
1) Melden Sie sich bei Google Mail an
2) Navigieren Sie zu dieser Seite https://www.google.com/settings/security/lesssecureapps und stellen Sie "Einschalten" ein.
quelle
Ich hatte das gleiche Problem, aber es stellte sich heraus, dass mein Virenschutz ausgehende "Spam" -E-Mails blockierte. Durch Deaktivieren konnte ich über Port 587 SMTP-E-Mails über GMail senden
quelle
Wenn hier nichts anderes für Sie funktioniert hat, müssen Sie möglicherweise den Zugriff auf Ihr Google Mail-Konto über Anwendungen von Drittanbietern zulassen. Das war mein Problem. Gehen Sie wie folgt vor, um den Zugriff zu ermöglichen:
Das hat bei mir funktioniert, hoffe es funktioniert bei jemand anderem!
quelle
Ich bin nicht sicher, welche .NET-Version dafür erforderlich ist, da eglasius erwähnt hat, dass es keine passende
enableSsl
Einstellung gibt (ich verwende .NET 4.0, aber ich vermute, dass es in .NET 2.0 oder höher funktioniert), aber diese Konfiguration hat gerade funktioniert Ich (und erfordert keine programmatische Konfiguration):Möglicherweise müssen Sie zuerst POP oder IMAP in Ihrem Google Mail-Konto aktivieren: https://mail.google.com/mail/?shva=1#settings/fwdandpop
Ich empfehle es zuerst mit einem normalen Mail-Client zu versuchen ...
quelle
@Andres Pompiglio: Ja, das stimmt, Sie müssen Ihr Passwort mindestens einmal ändern. Dieser Code funktioniert einwandfrei:
UND Sie können die Funktion aufrufen, indem Sie Folgendes verwenden:
quelle
Ich habe eine Unternehmens-VPN-Verbindung verwendet. Dies war der Grund, warum ich keine E-Mails von meiner Bewerbung senden konnte. Es funktioniert, wenn ich die Verbindung zum VPN trenne.
quelle
Ich habe auch festgestellt, dass das Konto, mit dem ich mich angemeldet habe, aus irgendeinem Grund von Google deaktiviert wurde. Nachdem ich mein Passwort zurückgesetzt hatte (auf das gleiche wie früher), konnte ich problemlos E-Mails senden. Ich habe auch die Nachricht 5.5.1 erhalten.
quelle
Ich hatte auch versucht, viele Lösungen zu finden, aber einige Änderungen vorzunehmen, wird funktionieren
mit smtpclient oben Parameter funktionieren in Google Mail
quelle
Ich habe den gleichen Fehler erhalten und keine der oben genannten Lösungen hat geholfen.
Mein Problem war, dass ich den Code von einem Remote-Server aus ausführte, der noch nie zum Anmelden beim Google Mail-Konto verwendet wurde.
Ich habe einen Browser auf dem Remote-Server geöffnet und mich von dort aus bei Google Mail angemeldet. Es wurde eine Sicherheitsfrage gestellt, um zu überprüfen, ob ich es war, da dies ein neuer Standort war. Nach der Sicherheitsüberprüfung konnte ich mich durch Code authentifizieren.
quelle
Aktivieren Sie weniger sichere Apps für Ihr Konto: https://www.google.com/settings/security/lesssecureapps
quelle
Ich bin auf denselben Fehler gestoßen ( "Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich. Weitere Informationen unter" ) und habe festgestellt, dass ich das falsche Kennwort verwendet habe. Ich habe die Anmeldeinformationen korrigiert und sie wurden korrekt gesendet.
Ich weiß, dass dies spät ist, aber vielleicht hilft das jemand anderem.
quelle
Eine andere Sache, die ich gefunden habe, ist, dass Sie Ihr Passwort mindestens einmal ändern müssen. Versuchen Sie, ein Kennwort auf sicherer Ebene zu verwenden (verwenden Sie nicht denselben Benutzer wie Kennwort, 123456 usw.).
quelle
Noch eine mögliche Lösung für Sie. Ich hatte ähnliche Probleme beim Herstellen einer Verbindung zu Google Mail über IMAP. Nachdem Sie alle Lösungen ausprobiert haben, auf die Sie gestoßen sind und über die Sie hier und anderswo auf SO lesen werden (z. B. IMAP aktivieren, weniger sicheren Zugriff auf Ihre E-Mails aktivieren, verwenden Sie https://accounts.google.com/b/0/displayunlockcaptcha und usw.) Ich habe tatsächlich wieder ein neues Google Mail-Konto eingerichtet.
In meinem ursprünglichen Test, dem ersten von mir erstellten Google Mail-Konto, hatte ich eine Verbindung zu meinem Haupt-Google Mail-Konto hergestellt. Dies führte zu einem unberechenbaren Verhalten, bei dem Google auf das falsche Konto verwies. Führen Sie beispielsweise https://accounts.google.com/b/0/displayunlockcaptcha aus ausführen, wird mein Hauptkonto geöffnet und nicht das Konto, das ich zu diesem Zweck erstellt habe.
Als ich ein neues Konto erstellte und es nicht mit meinem Hauptkonto verband, stellte ich nach den oben beschriebenen Schritten fest, dass es einwandfrei funktioniert hat!
Ich habe dies noch nicht bestätigt (dh reproduziert), aber es hat es anscheinend für mich getan ... hoffe, es hilft.
quelle
einstellen
Vor
quelle
Es gibt einen oder mehrere Gründe für diesen Fehler.
Melden Sie sich mit Google Mail (oder einem anderen Fall) in Ihrem lokalen System an.
Suchen Sie auch nach einer weniger sicheren App und setzen Sie sie auf "Einschalten". Hier ist der Link für GMAIL. https://www.google.com/settings/security/lesssecureapps
Suchen Sie in Ihrem E-Mail-Code nach EnableSsl und setzen Sie ihn auf true.
Überprüfen Sie auch, welchen Port Sie gerade verwenden. 25 ist global, aber Sie können es auch für andere wie 587 überprüfen. Überprüfen Sie hier. Findet die gesamte SMTP-Kommunikation über 25 statt?
WENN SIE AUF FERNBEDIENUNG SIND : Überprüfen Sie die Antwort von Vlad Tamas oben.
quelle
Sie können auch eine Verbindung über Port 465 herstellen. Aufgrund einiger Einschränkungen des System.Net.Mail-Namespace müssen Sie möglicherweise Ihren Code ändern. Dies liegt daran, dass der Namespace nicht die Möglichkeit bietet, implizite SSL-Verbindungen herzustellen. Dies wird unter http://blogs.msdn.com/b/webdav_101/archive/2008/06/02/system-net-mail-with-ssl-to-authenticate-against-port-465.aspx und I erläutert haben ein Beispiel für die Verwendung des CDO (Collaborative Data Object) in einer anderen Diskussion geliefert ( GMail SMTP über C # .Net-Fehler an allen Ports ).
quelle
Ich hatte dieses Problem gelöst. Anscheinend wird diese Nachricht in mehreren Fehlertypen verwendet. Mein Problem war, dass ich mein Maximum von 500 gesendeten Mails erreicht hatte.
Melden Sie sich beim Konto an und versuchen Sie manuell, eine E-Mail zu senden. Wenn das Limit erreicht wurde, werden Sie darüber informiert
quelle
Wenn Ihr Google Mail-Konto eine Bestätigung in zwei Schritten enthält, müssen Sie ein App-Kennwort generieren. https://support.google.com/accounts/answer/185833?p=app_passwords_sa&hl=de&visit_id=636903322072234863-1319515789&rd=1 Wählen Sie So generieren Sie eine App-Kennwortoption und führen Sie die angegebenen Schritte aus. Kopieren Sie das generierte App-Passwort und fügen Sie es irgendwo ein, da Sie es nicht wiederherstellen können, nachdem Sie auf FERTIG geklickt haben.
quelle
quelle
Ändern Sie Ihr Google Mail-Passwort und versuchen Sie es erneut. Danach sollte es funktionieren.
Ich weiß nicht warum, aber jedes Mal, wenn Sie Ihr Hosting ändern, müssen Sie Ihr Passwort ändern.
quelle