ruby on rails - generate - Rails 4, cómo configurar correctamente las configuraciones smtp(gmail)
send mailer rails (4)
Intento crear un formulario de contacto en Rails 4. Investigué un poco y pude hacer funcionar la mayoría de las cosas. (seguido del trabajo de @ sethfri aquí Formulario de contacto Mailer in Rails 4 )
Ahora mismo puedo completar mi formulario y presionar enviar. En mi servidor de rails, dice que el correo fue enviado a mi dirección de correo electrónico, pero no recibo nada en mi cuadro de gmail, así que creo que mi configuración de smtp no es correcta. Mi configuración smtp es:
... config / environments / development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { :host => ''localhost:3000'' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.net",
:user_name => "[email protected]",
:password => "myGmailPassword",
:authentication => "plain",
:enable_starttls_auto => true
}
También agregué en ... / config / initializers / smtp_settings.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.net",
:user_name => "[email protected]",
:password => "gmailPassword",
:authentication => "plain",
:enable_starttls_auto => true
}
¿Qué estoy perdiendo / haciendo mal? He jugado un par de cosas (cambié default_url al puerto 1025, cambiado: port => "587" a: puerto => 587) sin éxito.
¡Gracias por la ayuda!
Después de algunas horas para buscar cómo hacer que esto funcione para mí, encuentro una manera de hacerlo funcionar. Para mí, necesitaba hacer una verificación en dos pasos y usar la contraseña de la aplicación Gmail
Cuando habilita la verificación en dos pasos (también conocida como autenticación de dos factores), agrega una capa adicional de seguridad a su cuenta. Inicia sesión con algo que conoce (su contraseña) y algo que tiene (un código enviado a su teléfono).
Configurar la verificación en dos pasos
- Vaya a la página de verificación en 2 pasos . Es posible que deba iniciar sesión en su cuenta de Google.
- En el cuadro "Verificación de dos pasos" a la derecha, selecciona Iniciar configuración.
- Siga el proceso de configuración paso a paso.
Una contraseña de la aplicación es un código de acceso de 16 dígitos que da permiso a una aplicación o dispositivo para acceder a su cuenta de Google. Si usa la verificación en dos pasos y ve un error de "contraseña incorrecta" cuando intenta acceder a su cuenta de Google, una contraseña de la aplicación puede resolver el problema. La mayoría de las veces, solo tendrá que ingresar una contraseña de la aplicación una vez por aplicación o dispositivo, así que no se preocupe por memorizarla
Cómo generar una contraseña de la aplicación
- Visita la página de contraseñas de tu aplicación . Se le puede solicitar que inicie sesión en su cuenta de Google.
- En la parte inferior, haz clic en Seleccionar aplicación y elige la aplicación que estás usando.
- Haga clic en Seleccionar dispositivo y elija el dispositivo que está utilizando.
- Seleccione Generar.
- Siga las instrucciones para ingresar la contraseña de la aplicación (el código de 16 caracteres en la barra amarilla) en su dispositivo.
- Seleccione Listo
Google recomienda utilizar OAuth 2.0 para el proceso de inicio de sesión. Esta configuración "no es tan segura" para google, pero la tolera. Debe permitir "conexiones menos seguras" en la configuración de su cuenta de Google o usar OAuth-way. https://developers.google.com/identity/protocols/OAuth2
Su biblioteca de ruby sigue siendo alfa. Parece que hay algunas gemas que extienden ActionMailer para OAuth, pero nunca las utilicé.
Si encuentra errores como Net :: SMTPAuthenticationError al usar gmail para enviar correos electrónicos (común para las cuentas de Google Apps), visite su configuración de gmail y habilite las aplicaciones menos seguras para que la aplicación funcione.
Tienes que configurar el dominio correctamente. Actualmente en el código publicado es "mydomain.net". Cámbielo a gmail.com si desea enviarlo a través de gmail.
config.action_mailer.smtp_settings = {
address: ''smtp.gmail.com'',
port: 587,
domain: ''gmail.com'',
user_name: ''[email protected]'',
password: ''yourpassword'',
authentication: :plain,
enable_starttls_auto: true
}