ruby on rails - for - ActionMailer no envía correo en desarrollo Rails 4
sendgrid with actionmailer (4)
¿Por qué este correo no envía ningún correo? (¿Alguna idea para depurar?)
En my_app / config / environments / development.rb tengo este código:
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: ''smtp.gmail.com'',
port: 587,
domain: ''my_app.com'',
user_name: ENV[''GMAIL_USERNAME''],
password: ENV[''GMAIL_PASSWORD''],
authentication: ''plain'',
enable_starttls_auto: true }
Luego en mi computadora local en ~ / .bash_profile tengo este código:
export GMAIL_USERNAME=''blah@my_app.com''
export GMAIL_PASSWORD=''***''
Cuando ejecuto $ env
en mi terminal, veo que ambas variables de entorno están configuradas correctamente.
También reinicié mi servidor de rieles.
Así que lo he descubierto. Tener la línea ActionMailer::Base.delivery_method = :smtp
en config/environment.rb
anula ActionMailer::Base.delivery_method = :test
en config/environments/test.rb
Por lo tanto, elimine esa línea, ActionMailer::Base.delivery_method = :smtp
from config/environment.rb
y colóquela en config/environments/production.rb
. Eso le permite colocar ActionMailer::Base.delivery_method = :test
en config/environments/test.rb
y la versión que desee en config/environments/development.rb
. Hice development.rb
:test
mientras llenaba mi base de datos usando Faker y lo cambiaba a :smtp
así que estaba seguro de que los correos electrónicos reales se enviaban como una verificación adicional.
Nota: debe reiniciar su servidor para que estos cambios surtan efecto.
Otra nota: las instrucciones SendGrid actuales de Heroku ( https://devcenter.heroku.com/articles/sendgrid ) ponen el código de configuración SendGrid Heroku en un nuevo archivo config/initializers/mail.rb
que probablemente requerirá eliminar su última línea y colocar el versión deseada en cada config/environments/[production.rb, development.rb, test.rb]
Deberías agregar
config.action_mailer.perform_deliveries = true
como por defecto, esto es falso, impidiendo que se envíen correos desde su entorno de desarrollo ...
Para cualquiera que no use smtp, cambiar el método de entrega a sendmail me ayudó además de establecer explícitamente las entregas que se realizarán:
config.action_mailer.delivery_method = :sendmail
Si tiene problemas para enviar correos electrónicos desde la consola, debe llamar al método de entrega en su correo.
MyMailer.create_email.deliver