ActionMailer отправляет настоящие электронные письма в тестовом режиме! - Как отключить?

Новые пользователи, зарегистрировавшиеся в моем маленьком приложении, должны быть одобрены администратором (я), прежде чем они смогут получить доступ к сайту. Мне удалось сгенерировать такие электронные письма в процессе разработки с помощью after_create :send_admin_emailв моей пользовательской модели, которая отлично работает. Моя проблема в том, что я генерирую несколько пользователей во время своих тестов (используя FactoryGirl), и каждый созданный тестовый пользователь отправляет реальное электронное письмо. Проводить тесты — это все равно, что наливать патоку в январе, и мне нужно удалить сотни писем, отправленных в мой почтовый ящик. Как это отключить?

Основы Action Mailerв Rails Guidesговорит мне, что «По умолчанию Action Mailer не отправляет электронные письма в тестовой среде. Они просто добавляются в массив ActionMailer::Base.deliveries. "

Кроме того, в config/environment/test.rbу меня есть:

config.action_mailer.delivery_method = :test

Это в дополнение к тому, что в config/environment.rbесть:

# Configuration for using SendGrid on Heroku
ActionMailer::Base.smtp_settings = {
  :address        => 'smtp.sendgrid.net',
  :port           => '587',
  :authentication => :plain,
  :user_name      => 'app[my app number]@heroku.com',
  :password       => '[something super secret]',
  :domain         => '[let's get this party started!.com]',
  :enable_starttls_auto => true
}
ActionMailer::Base.delivery_method = :smtp

I' Я уверен, что упускаю что-то простое и основное. Я искал вокруг, и связанные вопросы и сообщения касались того, как проверить, что ActionMailer действительно отправил электронное письмо.

Заранее скромная благодарность за любые мысли или помощь.

Приложение: После ответа на аналогичный вопрос, найденный в Можно ли отключить электронные письма ActionMailer, когда в процессе разработки происходит тестирование огурца? Мне удалось остановить безумную отправку электронной почты. Тем не менее, мне пришлось добавить ActionMailer::Base.delivery_method = :testв несколько файлов rspec. Есть ли способ отключить это глобально? Кто-нибудь что-нибудь думает о том, что происходит?

21
задан Community 23 May 2017 в 12:34
поделиться