Недавно зарегистрированные пользователи моего маленького приложения должны быть одобрены администратором (мной), прежде чем они смогут получить доступ к сайту. Мне удалось создать такие письма в разработке с помощью after_create :send_admin_email
в моей модели пользователей, которая отлично работает. Моя проблема в том, что я генерирую несколько пользователей во время моих тестов (используя FactoryGirl), и каждый созданный тестовый пользователь отправляет реальный адрес электронной почты. Запуск моих тестов похож на заливку мелассы в январе, и мне нужно удалить сотни писем, отправленных на мой почтовый ящик. Как отключить это?
Основы действий Майка в Rails Guides говорит: "По умолчанию Action Mailer не отправляет электронные письма в тестовую среду, они просто добавляются в массив ActionMailer:: Base.deliveries."
Кроме того, в config/environments/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 get this party started!.com]',
:enable_starttls_auto => true
}
ActionMailer::Base.delivery_method = :smtp
Я уверен, что мне не хватает чего-то простого и элементарного. Я искал вокруг, и связанные вопросы и сообщения касаются того, как проверить, действительно ли ActionMailer отправил электронное письмо.
Смиренная благодарность заранее за любые мысли или помощь.
Добавление: следующий ответ на аналогичный вопрос, найденный в Можно ли отключить электронные письма ActionMailer, когда тестирование огурца происходит при разработке? Я смог остановить отправку электронной почты безумие. Тем не менее, мне пришлось добавить ActionMailer::Base.delivery_method = :test
в несколько файлов rspec. Есть ли способ, чтобы я мог закрыть это глобально? У кого-нибудь есть мысли о том, что происходит?