kutombawewe.net

Come posso evitare che il server di posta di Google mi chieda di accedere tramite il browser?

Sto cercando di inviare e-mail da Django usando un'e-mail configurata da Google Apps, la mia configurazione nel file settings.py è simile a questa:

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

Quando provo a inviare un'email usando:

from Django.core.mail import send_mail

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

Ottengo il seguente errore:

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')

Dato che sto lavorando su un server remoto senza interfaccia grafica, non posso nemmeno provare ad accedere dal browser.

Vai su https://accounts.google.com/DisplayUnlockCaptcha E fai clic su "continua". Questo consentirà l'accesso da altri server.

38

Ho lavorato per un paio d'ore con un test di cetriolo/capibara/selenio - ho scoperto qualcosa di stupido che risolverà questo errore per sempre, garantito

L'errore fin troppo familiare:

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

A quanto pare, ci sono due commutazioni "Consenti meno app sicure" che devono essere modificate per consentire l'accesso da dispositivi sconosciuti/IMAP.

Uno qui: https://myaccount.google.com/security?pli=1#connectedapps (parte inferiore della pagina)

E uno qui: https://www.google.com/settings/security/lesssecureapps

Entrambi questi GODFORSAKEN TOGGLES devono essere modificati per eliminare questo messaggio di errore.

modifica: dall'utente Milothicus ( https://stackoverflow.com/users/3538026/milothicus ): in myaccount.google.com, sotto "Accesso e sicurezza", seleziona "App e siti collegati". questo ha anche un'opzione per "Consenti app meno sicure". dopo aver acceso questo, il mio server potrebbe ora inviarmi un'email automatica.

30
etusm

Quando ho provato ad accedere al mio account mi è stata inviata questa email composta da questo link . https://www.google.com/settings/security/lesssecureapps

Puoi accenderlo e poi spegnerlo dopo aver completato i test.

13
jasxir

Ho ricevuto la seguente risposta dal supporto di Google Apps:

Devi attivare il tuo relay in uscita. Per fare questo:

  1. Accedi al tuo account su google.com/a/tuodominio.com
  2. Fare clic sulla scheda Impostazioni e quindi selezionare Email nella colonna di sinistra.
  3. Nella sezione Relay in uscita, selezionare Consenti agli utenti di inviare posta tramite un SMTP esterno quando si configura un indirizzo "da" ospitato al di fuori del tuo dominio.
  4. Fai clic su Salva modifiche.

Hanno anche fornito un link di aiuto: http://support.google.com/a/bin/answer.py?hl=it&answer=176054

Dopo aver attivato il relay in uscita e aver utilizzato il proxy per accedere nuovamente alla webmail (grazie a @DaniloBargen e @joshcartme) il problema è stato risolto. Ho letto il link che spiega cos'è il relay in uscita e non sono sicuro del perché ne avrei bisogno (non credo di utilizzare un server SMTP esterno).

Dato che non sono sicuro che sia questo il problema risolto, non contrassegnerò la risposta come accettata fino a quando non avrò conferma.

Configura un tunnel ssh sul server in questione in modo che tu possa, dal tuo computer di casa, accedere al client web di Gmail usando l'IP del server. Probabilmente hai bisogno di tunnelare la porta 80 e la porta 443, forse solo 443. Dopo aver effettuato l'accesso tramite il client web, il problema dovrebbe essere risolto in base all'articolo della Knowledge Base elencato in SMTPAuthenticationError.

Ecco un esempio di come impostare il tunnel: http://www.noah.org/wiki/SSH_tunnel#simple_port_forwarding_.28SSH_tunneling.29

5
joshcartme

Opzione # 1 (questo ha funzionato per me):

Dopo aver ricevuto l'errore Please log in with your web browser and then try again. Learn more etc. durante il tentativo di inviare e-mail dalla mia applicazione Web, ho effettuato l'accesso all'e-mail tramite browser dal mio computer locale.

Dopo aver effettuato l'accesso, c'era una barra di notifica gialla in alto che mi chiedeva se volevo consentire a un'applicazione esterna di accedere alla mia posta. L'ho confermato e Google mi ha chiesto di accedere all'account dall'applicazione entro i prossimi 10 minuti. Questo farà la lista bianca dell'applicazione.

Opzione 2:

Se l'opzione # 1 non funziona per te, prova questo: http://www.rocketideas.com/2012/05/gmail-error-password-not-accepted-from-server-solved/

5
finspin

etusm ha fornito due sedi per attivare app meno sicure:

Uno qui: https://myaccount.google.com/security?pli=1#connectedapps (fondo pagina)

E uno qui: https://www.google.com/settings/security/lesssecureapps

entrambi erano accesi, ma il mio server senza testa non poteva ancora inviarmi un'e-mail. sulla base della raccomandazione di google + di JohnPang, ho trovato una terza posizione in cui dovevo consentire l'accesso ad app meno sicure:

in myaccount.google.com, sotto "Accesso e sicurezza", seleziona "App e siti collegati". questo ha anche un'opzione per "Consenti app meno sicure". dopo aver acceso questo, il mio server potrebbe ora inviarmi un'email automatica.

4
Milothicus

Ho trovato la soluzione all'indirizzo: https://support.google.com/accounts/answer/185833?hl=it e infine https://security.google.com/settings/security/apppasswords

Se stai testando il tuo progetto su un computer locale, dovresti andare al secondo link e abilitare "Accesso per app meno sicure".

2
1man

Tutto quanto sopra non aiuta nel mio caso (strano). Ma questo collegamento potrebbe aiutarti:

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

Puoi accedervi tramite Google Plus

  1. Apri Google+
  2. Seleziona "Sicurezza" dall'alto
  3. In "Attività recenti" fai clic su "Visualizza tutti gli eventi"
  4. Verrà visualizzato un elenco di "Attività insolita"
  5. Mostra "Applicazione/tentativo di accesso al dispositivo (prevenuta) Singapore" mentre sto utilizzando AWS da Singapore
  6. Clicca su "Cambia"> "Sì, quello ero io!"
  7. Riprovare di nuovo. Fatto!
1
John Pang

Hai attivato l'autenticazione a due fattori per l'account app? Quindi potrebbe essere necessario utilizzare una password specifica dell'applicazione per tale applicazione. 

1
Christer B

A partire da ora (guarda la data del mio post) c'è solo un "Consenti app meno sicure" nell'interfaccia utente dell'amministratore dell'account Gmail: https://myaccount.google.com/u/0/security#connectedapps

Successivamente funzionerà dal tuo computer locale (Mac o PC). 

Per consentire l'accesso da Amazon EC2 (e ho il sospetto che altri host Cloud-locate), c'è ancora un altro flag da impostare nella battaglia senza fine di Google con gli spammer: https://accounts.google.com/b/0/DisplayUnlockCaptcha

0
Alex Rogachevsky