Net :: SMTPAuthenticationError quando si invia un’e-mail dall’app Rails (nell’ambiente di staging)

Sto inviando email dalla mia applicazione Rails. Funziona bene sull’ambiente di sviluppo, ma non riesce a staging. Ottengo il seguente errore:

Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6) 

Nota che il mio non ho un nome di dominio per il mio allestimento.

Ecco le mie impostazioni in staging.rb

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" } config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'my.ip.addr.here:80' :user_name => "[email protected]", :password => "my_email_password", :authentication => 'login' } 

Per favore aiuto.

Modificare.

Dopo aver aggiunto :tls => true opzione :tls => true che ottengo

 OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?) 

E poi ho cambiato porta a 25 e ora ottengo questo (con 30 secondi di ritardo):

 Timeout::Error (execution expired) 

Ho avuto lo stesso problema: le e-mail sono state inviate dallo sviluppo, ma non dalla produzione (dove stavo ricevendo Net::SMTPAuthenticationError ). Questo mi ha portato a concludere che il problema non era con la configurazione della mia app, ma con Google.

Motivo : Google stava bloccando l’accesso da una posizione sconosciuta (app in produzione)

Soluzione : vai a http://www.google.com/accounts/DisplayUnlockCaptcha e fai clic su Continua (questo consentirà l’accesso per 10 minuti per la registrazione di nuove app). Successivamente la mia app in produzione ha iniziato a inviare e-mail;)

Questa soluzione sta funzionando per me:

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { host:'localhost', port: '3000' } config.action_mailer.perform_deliveries = true config.action_mailer.raise_delivery_errors = true config.action_mailer.default :charset => "utf-8" config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'localhost:3000', :user_name => "[email protected]", :password => "password", :authentication => :plain, :enable_starttls_auto => true } 

È vero che Google bloccherà il tuo tentativo di accesso ma puoi modificare le tue impostazioni all’indirizzo https://www.google.com/settings/security/lesssecureapps in modo che il tuo account non sia più protetto dai moderni standard di sicurezza.

Risolto! Ho semplicemente cambiato la password per il mio account Gmail e in qualche modo gli errori sono scomparsi.

Dopo una dozzina di modifiche, le impostazioni finali a cui sono giunto sono:

 config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => "my.ip.addr.here" } config.action_mailer.smtp_settings = { :address => "smtp.gmail.com", :port => 587, :domain => 'my.ip.addr.here:80', :user_name => "[email protected]", :password => "my_email_password", :authentication => :plain, :enable_starttls_auto => true } 

La soluzione di cui sopra ha fornito le impostazioni corrette (che avevo già) ma non ha risolto il problema. Dopo continui tentativi, continuavo a ricevere lo stesso errore. Risulta, ho dovuto “cancellare il CAPTCHA” dal web. Vedi la documentazione di Gmail per i dettagli.

Puoi anche saltare direttamente alla pagina “cancella CAPTCHA” qui .

Molto tempo dopo, ma nel caso in cui aiuti qualcuno. Hai appena chiamato il Centro assistenza di Google Apps e ti hanno consigliato di cambiare l’impostazione lesssecureapps (come tutti gli altri), ma anche di cambiare la porta in 465.

Nel mio caso, questo ha fatto il trucco!

Ho anche affrontato il problema e, dopo alcune ricerche sull’impostazione di Gmail, ho trovato la soluzione:

  1. In gmail, vai alle impostazioni.

  2. Seleziona la scheda “Inoltro e POP / IMAP”.

  3. Nella sezione di accesso IMAP, seleziona “Abilita IMAP”.

Ciao, questo ha funzionato anche per me e quindi se qualcuno ha ancora un problema prova questo.

Assicurati di avere figaro nel tuo gemfile. Per salvare informazioni sensibili come nome utente e password come variabili di ambiente

 gem 'figaro' 

E nella tua config / environments / development.rb, incolla i codici seguenti usando smtp come metodo delivery

  config.action_mailer.delivery_method = :smtp 

Impostazioni SMTP per gmail

  config.action_mailer.smtp_settings = { :address=> "smtp.gmail.com", :port => 587, :user_name => ENV['gmail_username'], :password=> ENV['gmail_password'], :authentication=> "plain", :enable_starttls_auto=>true } config.action_mailer.default_url_options = { host: "locahost:3000" } 

Nella tua directory di configurazione crea un file chiamato application.yml e aggiungi i codici seguenti.

 gmail_username: '[email protected]' gmail_password: "your_example_email_password_here" 

È necessario utilizzare l’e-mail e la password per l’autenticazione nel file.

Ho avuto lo stesso problema.

Puoi triggersre l’ opzione per le less secure apps ( qui ).
https://myaccount.google.com/lesssecureapps

E sblocca Captcha ( link ):
https://accounts.google.com/DisplayUnlockCaptcha

La risposta accettata sembra molto antica, non so se in quel momento esistesse la soluzione (migliore) seguente:

Ora, l’invio di email funziona perfettamente!

Ho avuto lo stesso problema e dopo alcuni tentativi ed errori, sono arrivato a questa risoluzione che è un’opzione da abilitare in google:

Fai clic https://www.google.com/settings/u/0/security/lesssecureapps

Abilita “Accesso per app meno sicure” qui accedendo con l’indirizzo email che hai fornito in configurazione smtp.