ActionMailer n’envoie pas de mail en développement Rails 4

Pourquoi cet expéditeur n’envoie aucun courrier? (Ou des idées pour le débogage?)

Dans mon_app / config / environnements / development.rb j’ai ce code:

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 } 

Ensuite, sur mon ordinateur local dans ~ / .bash_profile, j’ai ce code:

 export GMAIL_USERNAME='blah@my_app.com' export GMAIL_PASSWORD='***' 

Lorsque je lance $ env dans mon terminal, je constate que les deux variables d’environnement sont correctement définies.

J’ai également redémarré mon serveur de rails.

Vous devriez append

 config.action_mailer.perform_deliveries = true 

comme par défaut, ceci est sur false, empêchant l’envoi de mails depuis votre environnement de développement …

Pour ceux qui n’utilisaient pas smtp, le fait de passer à sendmail via la méthode de livraison m’a aidé à définir explicitement les livraisons à effectuer:

 config.action_mailer.delivery_method = :sendmail 

Si vous rencontrez des problèmes lors de l’envoi du courrier électronique depuis la console, vous devez appeler la méthode de livraison sur votre courrier.

 MyMailer.create_email.deliver 

Donc j’ai compris. Avoir la ligne ActionMailer::Base.delivery_method = :smtp dans config/environment.rb remplace ActionMailer::Base.delivery_method = :test dans config/environments/test.rb

Supprimez donc cette ligne, ActionMailer::Base.delivery_method = :smtp de config/environment.rb et placez-la dans config/environments/production.rb . Cela vous permet de placer ActionMailer::Base.delivery_method = :test dans config/environments/test.rb et la version que vous voulez dans config/environments/development.rb . J’ai créé development.rb :test en remplissant ma firebase database à l’aide de Faker et en la transformant en :smtp .

Remarque: vous devez redémarrer votre serveur pour que ces modifications prennent effet.

Autre remarque: les instructions SendGrid actuelles de Heroku ( https://devcenter.heroku.com/articles/sendgrid ) placent le code de configuration SendGrid Heroku dans un nouveau fichier config/initializers/mail.rb qui nécessitera probablement de supprimer sa dernière ligne et de placer le version souhaitée dans chaque config/environments/[production.rb, development.rb, test.rb]