it-swarm-es.com

Net :: SMTPAuthenticationError al enviar correo electrónico desde la aplicación Rails (en un entorno de prueba)

Estoy enviando un correo electrónico desde mi aplicación Rails. Funciona bien en el entorno de desarrollo, pero falla en la puesta en escena. Obtuve el siguiente error:

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

Tenga en cuenta que mi no tengo un nombre de dominio para mi puesta en escena.

Aquí están mis configuraciones en 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'
}

Por favor ayuda.

Editar.

Después de agregar la opción :tls => true obtengo

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

Y luego cambié el puerto a 25 y ahora obtengo esto (con un retraso de 30 segundos):

Timeout::Error (execution expired)
90
eagor

Tuve el mismo problema: los correos electrónicos se enviaron desde el desarrollo, pero no desde la producción (donde estaba recibiendo Net::SMTPAuthenticationError). Esto me llevó a la conclusión de que el problema no era con la configuración de mi aplicación, sino con Google.

Motivo : Google estaba bloqueando el acceso desde una ubicación desconocida (aplicación en producción)

Solución : Vaya a http://www.google.com/accounts/DisplayUnlockCaptcha y haga clic en continuar (esto otorgará acceso por 10 minutos para registrar nuevas aplicaciones). Después de esto mi aplicación en producción comenzó a enviar correos electrónicos;)

234
Gee-Bee

Esta solución está funcionando para mí:

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
  }

Es cierto que Google bloqueará su intento de inicio de sesión pero puede cambiar su configuración en https://www.google.com/settings/security/lesssecureapps para que su cuenta ya no esté protegida por los estándares de seguridad modernos.

24
A H K

Resuelto Simplemente cambié la contraseña para mi cuenta de gmail y los errores desaparecieron de alguna manera.

Después de una docena de cambios, los ajustes finales que terminé con son:

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
}
23
eagor
14
aashish

La solución anterior proporcionó la configuración correcta (que ya tenía) pero no resolvió el problema. Después de continuados intentos, seguí recibiendo el mismo error. Resulta que tuve que "borrar el CAPTCHA" de la web. Consulte la documentación de gmail para más detalles.

También puede ir directamente a la página "Borrar el CAPTCHA" aquí .

13
Sorry-Im-a-N00b

Mucho más tarde, pero en caso de que ayude a alguien ... Simplemente llamó al Centro de ayuda de Google Apps y le dieron instrucciones para cambiar la configuración de menos opciones de seguridad (como todos los demás) pero también para cambiar el puerto a 465.

En mi caso, eso hizo el truco!

2

La respuesta aceptada parece muy antigua, no sé si en ese momento existía la siguiente (mejor) solución:

Ahora, el envío de correos electrónicos funciona perfectamente!

0
ubugnu

Yo tuve el mismo problema.


Solución:

0
Benyamin Jafari

También enfrenté el problema, y ​​después de algunas investigaciones en la configuración de Gmail, encontré la solución:

  1. En gmail, ve a la configuración.

  2. Seleccione la pestaña "Reenvío y POP/IMAP".

  3. En la sección de acceso IMAP, seleccione "Habilitar IMAP".

0
Shrinivas

Hola, esto también funcionó para mí y, por lo tanto, si alguien todavía tiene un problema, intente esto.

Asegúrate de tener Fígaro en tu archivo gem. Para guardar información sensible como el nombre de usuario y la contraseña como variables de entorno

gem 'figaro'

Y en su config/environment/development.rb, pegue los siguientes códigos usando smtp como método de entrega

 config.action_mailer.delivery_method = :smtp

Configuración de SMTP para 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" }

En su directorio de configuración, cree un archivo llamado application.yml y agregue los códigos a continuación.

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

Debe usar su correo electrónico y contraseña para la autenticación en el archivo.

0
cooxy