Google SMTP-Fehler: 454 4.7.0 Zu viele Anmeldeversuche. Bitte versuchen Sie es später erneut
17
Ich habe festgestellt, dass es zwar möglich war, Google Mail / Google Apps als SMTP-Server für Skripte zu verwenden, aber wenn zu viele E-Mails gesendet wurden, bekam ich Fehlermeldungen:
SMTP Error: 454 4.7.0 Too many login attempts, please try again later.
Wenn ich ein oder zwei Stunden gewartet habe, könnte ich normalerweise weitere 100 E-Mails verschicken, aber ich würde bald wieder dieselbe Fehlermeldung erhalten.
Ich stellte fest, dass das Problem darin bestand, dass wir zwar SPF-Datensätze für unsere Domains eingerichtet hatten, dieser Domain jedoch kein DKIM-Datensatz zugeordnet war. Um einen DKIM-Eintrag in Google Apps hinzuzufügen, müssen Sie folgende Schritte ausführen:
Gehen Sie zur Admin-Konsole
Klicken Sie auf "Google Apps".
Klicken Sie auf "Google Mail".
Scrollen Sie nach unten, bis Sie "E-Mail authentifizieren" sehen und klicken Sie darauf
Wählen Sie die Domain aus, zu der Sie DKIM hinzufügen möchten
Wenn Sie gefragt werden, welches Präfix Sie verwenden möchten, verwenden Sie einfach die Standardeinstellung "google".
Sie sehen dann einen TXT-Datensatz in zwei Teilen, wobei ein Teil die Domäne und der andere den tatsächlichen TXT-Datensatz enthält. Sie müssen Ihre DNS-Einstellungen auf Ihrem Server für Ihre Domain aufrufen und diesen Eintrag hinzufügen. Wenn Sie in Ihrem DNS-Kontrollfeld die Domain von nicht hinzufügen können google._domainkey, machen Sie die Domain einfach zu einer voll qualifizierten Domain google._domainkey.example.com.
Geben Sie dem DNS-Eintrag anschließend etwas Zeit für die Weitergabe und klicken Sie im Google Apps-Verwaltungsbereich auf "Authentifizierung starten". Wenn Sie ein grünes Häkchen sehen, haben Sie es getan und E-Mails sollten erneut über den SMTP-Server gesendet werden.
Was ist, wenn Sie nicht die Kontrolle über den DNS-Server haben?
Ishmael
1
Ein Lebensretter. Anscheinend überprüft Google Mail die autorisierenden Server auf den TXT-Eintrag, sodass Sie nicht auf die vollständige DNS-Übertragung warten müssen. Bei den meisten Änderungen, die heutzutage über einen DNS-Zonendateimanager vorgenommen werden, müssen Sie nicht mehr als ein paar Sekunden warten Sekunden, damit die Änderung wirksam wird.
JT Taylor
4
Sie müssen sich nicht für jede zu sendende E-Mail authentifizieren.
Zu Beginn des Prozesses:
Session session = loadSession();
Transport transport = session.getTransport("smtp");
transport.connect("[email protected]", "password");
Verwenden Sie anschließend das Transportobjekt, um jede E-Mail ohne Startsitzung zu senden:
Verwenden Sie SMTP, wenn Sie Massen-E-Mails senden. Melden Sie sich mit jeder einzelnen E-Mail an und dann ab. Aufgrund dessen blockiert Google Ihre Verbindung. Für mich hat es funktioniert, SMTPKeepAlive auf true zu setzen.
Sie müssen sich nicht für jede zu sendende E-Mail authentifizieren.
Zu Beginn des Prozesses:
Verwenden Sie anschließend das Transportobjekt, um jede E-Mail ohne Startsitzung zu senden:
Nachdem Sie alle E-Mails gesendet haben, sollten Sie die Verbindung schließen:
quelle
Die Lösung von @ victorpacheco3107 hat für mich funktioniert, genau das habe ich in Ruby getan:
quelle
Verwenden Sie SMTP, wenn Sie Massen-E-Mails senden. Melden Sie sich mit jeder einzelnen E-Mail an und dann ab. Aufgrund dessen blockiert Google Ihre Verbindung. Für mich hat es funktioniert, SMTPKeepAlive auf true zu setzen.
quelle