it-swarm.com.de

Wie kann ich vermeiden, dass der Google Mail-Server mich dazu auffordert, mich über den Browser anzumelden?

Ich versuche, E-Mails von Django mit einer von Google Apps konfigurierten E-Mail zu senden. Meine Konfiguration in der Datei settings.py sieht etwa so aus:

EMAIL_Host = 'smtp.gmail.com'
EMAIL_Host_USER = '[email protected]'
EMAIL_Host_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_USE_TLS = True

Wenn ich versuche, eine E-Mail zu senden, verwenden Sie:

from Django.core.mail import send_mail

send_mail("Happy new year", "We wish you the best for 3001",
    "[email protected]", ["[email protected]"])

Ich erhalte folgende Fehlermeldung:

SMTPAuthenticationError: 
(535, '5.7.1 Please log in with your web browser and then try again. 
 Learn more at
 5.7.1 https://support.google.com/mail/bin/answer.py?answer=78754 k2sm758604obl.14')

Da ich auf einem Remote-Server ohne grafische Benutzeroberfläche arbeite, kann ich nicht einmal versuchen, mich über den Browser anzumelden.

Gehen Sie einfach zu https://accounts.google.com/DisplayUnlockCaptcha .__ und klicken Sie auf "Weiter". Dies erlaubt den Zugriff von anderen Servern.

38

Ich habe mich damit ein paar Stunden lang mit einem Gurken-/Capybara-/Selenium-Test beschäftigt. Ich habe etwas Dummes entdeckt, das diesen Fehler für immer beheben wird, garantiert

Der allzu bekannte Fehler:

Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure) (Net::IMAP::NoResponseError)

Es stellt sich heraus, dass es ZWEI "Weniger sichere Apps zulassen" -Objekte gibt, die geändert werden müssen, um das Anmelden von unbekannten Geräten/IMAP zu ermöglichen.

One here: https://myaccount.google.com/security?pli=1#connectedapps (Ende der Seite)

Und hier: https://www.google.com/settings/security/lesssecureapps

BEIDE DIESE GODFORSAKEN-TOGGLES müssen geändert werden, um diese Fehlermeldung zu entfernen.

bearbeiten: Vom Benutzer Milothicus ( https://stackoverflow.com/users/3538026/milothicus ): Wählen Sie in myaccount.google.com unter "Anmelden & Sicherheit" die Option "Verbundene Apps und Websites". Dies hat auch die Option "Weniger sichere Apps zulassen". Nachdem Sie diese aktiviert haben, kann mein Server mir jetzt eine automatisierte E-Mail senden.

30
etusm

Beim Versuch, auf mein Konto zuzugreifen, wurde mir diese E-Mail mit diesem Link gesendet . https://www.google.com/settings/security/lesssecureapps

Sie können nach dem Testen möglicherweise wieder einschalten.

13
jasxir

Ich habe folgende Antwort vom Google Apps-Support erhalten:

Sie müssen Ihr Outbound-Relay einschalten. Um dies zu tun:

  1. Melden Sie sich unter google.com/a/ihredomain.com in Ihrem Konto an
  2. Klicken Sie auf die Registerkarte Einstellungen und wählen Sie dann in der linken Spalte E-Mail aus.
  3. Wählen Sie im Abschnitt Ausgehendes Relay die Option Benutzern das Senden von E-Mails über ein externes SMTP bei der Konfiguration einer gehosteten "Von" -Adresse erlauben außerhalb Ihrer Domain.
  4. Klicken Sie auf Änderungen speichern.

Sie haben auch einen Hilfe-Link bereitgestellt: http://support.google.com/a/bin/answer.py?hl=de&answer=176054

Nachdem das Outbound-Relay aktiviert und der Proxy erneut für die Anmeldung bei der Webmail verwendet wurde (danke @DaniloBargen und @joshcartme), wurde das Problem behoben. Ich habe den Link gelesen, der erklärt, was das Outbound-Relay ist, und ich bin mir nicht wirklich sicher, warum ich es brauchen sollte (ich glaube nicht, dass ich einen externen SMTP-Server verwende).

Da ich nicht wirklich sicher bin, dass das Problem dadurch gelöst wurde, werde ich die Antwort nicht als akzeptiert markieren, bis ich eine Bestätigung bekomme.

Richten Sie einen SSH-Tunnel für den betreffenden Server ein, damit Sie sich von Ihrem Heimcomputer aus mit dem IP-Server des Google Mail-Clients anmelden können. Möglicherweise müssen Sie Port 80 und Port 443 (möglicherweise nur 443) tunneln. Nachdem Sie sich über den Webclient angemeldet haben, sollte das Problem gemäß dem im SMTPAuthenticationError aufgeführten Knowledge Base-Artikel behoben sein.

Hier ein Beispiel für die Einrichtung des Tunnels: http://www.noah.org/wiki/SSH_tunnel#simple_port_forwarding_.28SSH_tunneling.29

5
joshcartme

Option # 1 (das hat für mich funktioniert):

Nachdem ich beim Versenden der E-Mail von meiner Webanwendung die Fehlermeldung Please log in with your web browser and then try again. Learn more etc. erhalten hatte, loggte ich mich von meinem lokalen Computer aus über den Browser in die E-Mail ein.

Nachdem ich mich angemeldet hatte, wurde oben eine gelbe Benachrichtigungsleiste angezeigt, in der ich gefragt wurde, ob ich der externen Anwendung den Zugriff auf meine E-Mails erlauben möchte. Ich bestätigte dies und Google bat mich, mich aus der Anwendung innerhalb der nächsten 10 Minuten bei dem Konto anzumelden. Dadurch wird die Anwendung in eine weiße Liste gesetzt.

Option 2:

Wenn Option # 1 für Sie nicht funktioniert, versuchen Sie Folgendes: http://www.rocketideas.com/2012/05/gmail-error-password-not-accepted-from-server-solved/

5
finspin

etusm stellte zwei Standorte bereit, um weniger sichere Apps zu aktivieren:

Einer hier: https://myaccount.google.com/security?pli=1#connectedapps (Seitenende)

Und hier: https://www.google.com/settings/security/lesssecureapps

beide waren eingeschaltet, aber mein Headless-Server konnte mir immer noch keine E-Mail senden. Basierend auf der google + -Empfehlung von JohnPang fand ich einen dritten Standort, an dem ich den Zugriff auf weniger sichere Apps zulassen musste:

wählen Sie in myaccount.google.com unter "Anmelden & Sicherheit" die Option "Verbundene Apps und Websites". Dies hat auch die Option "Weniger sichere Apps zulassen". Nachdem Sie diese aktiviert haben, kann mein Server mir jetzt eine automatisierte E-Mail senden.

4
Milothicus

Ich habe die Lösung unter: https://support.google.com/accounts/answer/185833?hl=de und schließlich https://security.google.com/settings/security/apppasswords gefunden.

Wenn Sie Ihr Projekt auf einem lokalen Computer testen, sollten Sie zu diesem Link wechseln und "Zugriff auf weniger sichere Apps" aktivieren.

2
1man

All das oben genannte hilft in meinem Fall nicht (komisch). Dieser Link kann Ihnen jedoch helfen:

https://security.google.com/settings/security/activity

Sie können über Google Plus darauf zugreifen

  1. Öffnen Sie Google+
  2. Wählen Sie oben "Sicherheit"
  3. Klicken Sie unter "Letzte Aktivität" auf "Alle Ereignisse anzeigen".
  4. Sie sehen eine Liste mit "ungewöhnlichen Aktivitäten".
  5. Es zeigt "Anmeldeversuch für Anwendung/Gerät (verhindert) Singapur" an, während ich AWS aus Singapur verwende
  6. Klicken Sie auf "Ändern"> "Ja, das war ich!"
  7. Versuchen Sie es erneut. Erledigt!
1
John Pang

Haben Sie die Zwei-Faktor-Authentifizierung für das Apps-Konto aktiviert? Dann müssen Sie möglicherweise ein anwendungsspezifisches Kennwort für diese Anwendung verwenden. 

1
Christer B

Ab sofort (siehe Datum meines Beitrages) gibt es nur eine Option zum Aktivieren der Option "Weniger sichere Apps zulassen" in der Benutzeroberfläche des Google Mail-Kontos: https://myaccount.google.com/u/0/security#connectedapps

Danach funktioniert es von Ihrem lokalen Computer (Mac oder PC).

Um den Zugriff von Amazon EC2 zuzulassen (und ich vermute, dass sich andere Hosts in der Cloud befinden), muss in Googles nie endendem Kampf gegen Spammer eine weitere Flagge gesetzt werden: https://accounts.google.com/b/0/DisplayUnlockCaptcha

0