Ich möchte eine E-Mail von meiner Bewerbung senden und habe den folgenden Code zum Senden von E-Mails geschrieben
MailMessage msg = new MailMessage();
msg.From = new MailAddress("mymailid");
msg.To.Add("receipientid");
msg.Subject = "test";
msg.Body = "Test Content";
msg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("mymailid", "mypassword", "smtp.gmail.com");
client.Host = "smtp.gmail.com";
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.UseDefaultCredentials = true;
client.Send(msg);
Ich führe es auf localhost aus, also was für ein Fehler mache ich, um es zu senden.
Wenn ich Button sende gibt es einen Fehler wie
Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert. Die Serverantwort lautete: 5.5.1 Authentifizierung erforderlich.
Code in der Datei Web.config
<appSettings>
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="smtpServer" value="smtp.gmail.com" />
<add key="EnableSsl" value = "true"/>
<add key="smtpPort" value="587" />
<add key="smtpUser" value="[email protected]" />
<add key="smtpPass" value="mypassword" />
<add key="adminEmail" value="[email protected]" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="[email protected]">
<network host="smtp.gmail.com" password="mypassword" port="587" userName="[email protected]" enableSsl="true"/>
</smtp>
</mailSettings>
</system.net>
Was soll ich tun, um diesen Fehler zu beheben und E-Mails zu senden?
Antworten:
Überprüfen Sie zunächst die Sicherheitsprobleme von Google Mail. Möglicherweise haben Sie die doppelte Authentifizierung in Google Mail aktiviert. Überprüfen Sie auch Ihren Google Mail-Posteingang, wenn Sie Sicherheitswarnungen erhalten. In solchen Fällen überprüfen Sie die andere Antwort von @mjb wie unten
Unten ist die sehr allgemeine Sache, die ich immer zuerst auf solche Probleme überprüfe
setze es auf false.
Hinweis: Die Antwort von @Joe King: Sie müssen client.UseDefaultCredentials festlegen, bevor Sie client.Credentials festlegen
quelle
Ich habe das gleiche Problem.
Ich habe diese Lösung gefunden:
Google blockiert möglicherweise Anmeldeversuche von einigen Apps oder Geräten, die keine modernen Sicherheitsstandards verwenden. Da diese Apps und Geräte leichter zu erreichen sind, hilft das Blockieren, Ihr Konto sicherer zu machen.
Einige Beispiele für Apps, die die neuesten Sicherheitsstandards nicht unterstützen, sind:
Daher müssen Sie in Ihrem Google-Konto die weniger sichere Anmeldung (oder den weniger sicheren App-Zugriff ) aktivieren .
Nachdem Sie sich in einem Google-Konto angemeldet haben, gehen Sie zu:
https://www.google.com/settings/security/lesssecureapps
oder
https://myaccount.google.com/lesssecureapps
In C # können Sie den folgenden Code verwenden:
-------------------
Von Michael Freidgeim im Kommentarbereich unten geteilte Informationen:
Ähnliche Antwort mit Screenshots https://stackoverflow.com/a/32457468/52277
quelle
Stellen Sie sicher, dass Sie
SmtpClient.Credentials
nach dem Anruf einstellenSmtpClient.UseDefaultCredentials = false
.Die Reihenfolge ist wichtig , da Einstellung
SmtpClient.UseDefaultCredentials = false
zurückgesetztSmtpClient.Credentials
auf null.quelle
Ich habe stundenlang verschiedene Dinge gesucht und ausprobiert. Zusammenfassend musste ich folgende Punkte berücksichtigen:
smtp.gmail.com
anstelle vonsmtp.google.com
client.UseDefaultCredentials = false;
vor dem Anmeldeinformationen einstellenclient.EnableSsl = true;
Wenn diese Schritte nicht geholfen haben, überprüfen Sie diese Antwort .
Vielleicht finden Sie auch in diesen häufig gestellten Fragen zu System.Net.Mail etwas Nützliches .
quelle
Versuchen Sie, sich in Ihrem Google Mail-Konto anzumelden. Es wird gesperrt, wenn Sie E-Mails mit Google Mail SMTP senden. Ich weiß nicht, wie viele E-Mails Sie senden können, bevor sie gesperrt werden. Wenn Sie sich jedoch einmal anmelden, funktioniert dies erneut über den Code. Stellen Sie sicher, dass Ihre Webkonfigurationseinstellungen gut sind.
quelle
Probieren Sie es so aus, ich habe gerade einige leichte Änderungen vorgenommen:
Bitte zeigen Sie auch Ihre app.config-Datei an, wenn Sie dort E-Mail-Einstellungen haben.
quelle
Ich bin auf dasselbe Problem gestoßen, obwohl ich "UseDefaultCredentials" auf false gesetzt habe. Später stellte ich fest, dass die Hauptursache darin besteht, dass ich in meinem Konto die "Bestätigung in zwei Schritten" aktiviert habe. Nachdem ich es ausgeschaltet habe, ist das Problem weg.
quelle
Schalten Sie die weniger sichere App über diesen Link ein und boomen Sie ...
quelle
Versuchen Sie, weniger sicheren App-Zugriff zu ermöglichen.
Hier können Sie eine weniger sichere App aktivieren, nachdem Sie sich mit Google Mail angemeldet haben.
https://myaccount.google.com/lesssecureapps
Vielen Dank.
quelle
Stellen Sie sicher, dass die weniger sichere App für den Zugriff zulässig ist.
quelle
Unten ist mein Code. Ich hatte auch den gleichen Fehler, aber das Problem war, dass ich mein Passwort falsch angegeben habe. Der folgende Code wird perfekt funktionieren. Versuchen Sie es
Sie können es unter Senden von E-Mails erneut anzeigen
quelle
Wenn es sich um ein neues Google-Konto handelt, müssen Sie eine E-Mail (die erste) über die reguläre Benutzeroberfläche senden. Danach können Sie mit Ihrer Anwendung / Ihrem Roboter Nachrichten senden.
quelle
Sie sollten in Betracht ziehen, SMTP-Konfigurationsdaten in der Konfigurationsdatei anzugeben und diese nicht in einem Code zu überschreiben - siehe SMTP-Konfigurationsdaten unter http://www.systemnetmail.com/faq/4.1.aspx
quelle
Ich bin mehrmals auf dasselbe Problem gestoßen. Nach dem Aktivieren der weniger sicheren App-Option wurde das Problem behoben. Aktivieren Sie die weniger sichere App von hier aus: https://myaccount.google.com/lesssecureapps
hoffe das wird helfen.
quelle
Wenn Sie sich in einer Testumgebung befinden und keine Sicherheitseinstellungen festlegen möchten, müssen Sie weniger sichere Apps über zulassen. Dieser Link in Google Mail.
https://myaccount.google.com/lesssecureapps
quelle
Bei einigen SMTP-Servern (sicheren Servern) müssen Sie sowohl den Benutzernamen als auch die E-Mail-Adresse angeben. Wenn es sich um Google Mail handelt, besteht die größte Wahrscheinlichkeit, dass Sie das Problem der weniger sicheren Anmeldung lösen müssen. Andernfalls können Sie Folgendes versuchen:
Beachten Sie, dass sich die E-Mail-Adresse und der Benutzername von anderen Implementierungen unterscheiden, die sie als gleich bezeichnen.
Das Aufrufen dieser Methode kann folgendermaßen erfolgen:
quelle
Wenn Sie nach dem Aktivieren der weniger sicheren Option und dem Ausprobieren anderer Lösungen immer noch das gleiche Problem haben, versuchen Sie, diese Überlastung zu verwenden:
anstatt:
quelle
Ich habe heute Morgen ein Microsoft 365 Developer-Abonnement (E5) erstellt und damit eine Test-E-Mail mit den folgenden Einstellungen gesendet
Am Anfang hat es nicht funktioniert, da ich diese Fehlermeldung mit der von diesem Code ausgelösten Ausnahme immer wieder erhielt. Dann habe ich mehr als 4 Stunden damit verbracht, mit den Einstellungen des Microsoft 365 Admin Centers zu spielen und Artikel zu lesen, um das Problem herauszufinden. Letztendlich habe ich mein Microsoft 365 Admin Center-Passwort geändert und es hat wie ein Zauber funktioniert. Es lohnt sich also, das Kennwort zu ändern, wenn Sie diese Nachricht erhalten, bevor Sie über eine Vorablösung nachdenken.
Beachten Sie, dass das Kennwort mit Sicherheit nicht ungültig war, da ich mich ohne Probleme bei meinem Microsoft 365-Konto angemeldet habe. Die Kennwortänderung löste jedoch das Problem.
quelle
Ich hatte auch das Problem: "Der SMTP-Server erfordert eine sichere Verbindung oder der Client wurde nicht authentifiziert." Die Serverantwort lautete: 5.5.0 Authentifizierung erforderlich. Dann wurden so viele Internetmaterialien durchgesehen, aber es hat mir nicht vollständig geholfen. Wie ich es gelöst habe
Schritt 1: smtp.gmail.com ist ein Google Mail-Server. Gehen Sie also zu den Google Mail-Einstellungen Ihres Kontos -> klicken Sie auf Alle Einstellungen anzeigen -> Weiterleitung und IMAP / POP -> Pop und IMAP aktivieren, wenn nicht aktivieren -> Änderungen speichern. Schritt 2 - Klicken Sie auf Ihr Google Mail-Profilbild -> Klicken Sie auf Google-Konto verwalten -> Gehen Sie zur Registerkarte "Sicherheit" -> Überprüfen Sie den Zugriff auf weniger sichere Apps (diese Option ist verfügbar, wenn Sie sich nicht für eine Bestätigung in zwei Schritten entschieden haben) -> Standardmäßig Google setzt es als deaktiviert und aktiviert es, um Ihr echtes Google Mail-Passwort für das Senden von E-Mails zu verwenden. Hinweis: - Das Aktivieren des Google Mail-Zugriffs für weniger sichere Apps kann für Sie gefährlich sein, daher empfehle ich dies nicht
Schritt 3: - Wenn für Ihr Konto die Bestätigung in zwei Schritten aktiviert ist oder Sie ein anderes Kennwort als Ihr Google Mail Real-Kennwort mit einem app-spezifischen Kennwort verwenden möchten, versuchen Sie Folgendes: - Klicken Sie auf Ihr Google Mail-Profilbild-> Klicken Sie auf Google-Konto verwalten-> Gehen Sie zur Sicherheit Registerkarte-> Suche nach APP-PASSWORT-> Wählen Sie einen beliebigen App-Namen aus-> Wählen Sie einen beliebigen Gerätenamen-> Klicken Sie auf Generieren-> Kopieren Sie das 16-stellige Passwort und fügen Sie es in Ihre App ein, in die Sie anstelle von ein Google Mail-Passwort eingeben müssen Ihr echtes Google Mail-Passwort.
quelle