Ответ 1
Вы должны добавить
config.action_mailer.perform_deliveries = true
поскольку по умолчанию это значение false, предотвращая отправку писем из среды разработки...
Почему почтовая программа не отправляет почту? (Или любые идеи для отладки?)
В my_app/config/environment/development.rb У меня есть этот код:
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 }
Затем на моем локальном компьютере в ~/.bash_profile у меня есть этот код:
export GMAIL_USERNAME='[email protected]_app.com'
export GMAIL_PASSWORD='***'
Когда я запускаю $ env
в моем терминале, я вижу, что обе переменные среды правильно установлены.
Я также перезапустил сервер rails.
Вы должны добавить
config.action_mailer.perform_deliveries = true
поскольку по умолчанию это значение false, предотвращая отправку писем из среды разработки...
Для тех, кто не использует smtp, мне удалось добавить способ доставки sendmail в дополнение к явным настройкам доставки:
config.action_mailer.delivery_method = :sendmail
Если у вас возникли проблемы с отправкой электронной почты с консоли, вы должны вызвать метод доставки в своей почте.
MyMailer.create_email.deliver
Итак, я понял это. Наличие строки ActionMailer::Base.delivery_method = :smtp
в config/environment.rb
переопределяет ActionMailer::Base.delivery_method = :test
в config/environments/test.rb
.
Итак, удалите эту строку, ActionMailer::Base.delivery_method = :smtp
из config/environment.rb
и поместите ее в config/environments/production.rb
. Это позволяет разместить ActionMailer::Base.delivery_method = :test
в config/environments/test.rb
и версию, которую вы хотите в config/environments/development.rb
. Я сделал development.rb
:test
, когда я заполнил свою базу данных с помощью Faker и изменил ее на :smtp
, поэтому я был уверен, что настоящие электронные письма были отправлены в качестве дополнительной проверки.
Примечание. Чтобы эти изменения вступили в силу, необходимо перезагрузить сервер.
Другое примечание: текущие инструкции SendGrid Heroku (https://devcenter.heroku.com/articles/sendgrid) помещают код конфигурации SendGrid Heroku в новый файл config/initializers/mail.rb
, который, скорее всего, требуют удаления последней строки и размещения нужной версии в каждом config/environments/[production.rb, development.rb, test.rb]