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]