Rails ActionMailer — Предотвращает доставку электронной почты для тестирования

#ruby-on-rails #actionmailer

Вопрос:

Я пытаюсь предотвратить доставку электронных писем, чтобы я мог проверить содержимое ActionMailer::Base.deliveries для тестирования в промежуточной среде. config.action_mailer.delivery_method = :test У меня есть настройки среды, но Rails все еще пытается доставлять электронные письма, а массив доставок пуст. Что я делаю не так?

Комментарии:

1. В каких конкретно настройках среды?

2. Я тестирую его в своей среде разработки, но в конечном счете собираюсь использовать его в промежуточной среде. Я хочу регистрировать электронные письма в базе данных, а не доставлять их.

3. В каком файле вы установили delivery_method конфигурацию? Соответствует ли ваша конфигурация среды выполнения среде, в которой вы ее установили? Какая версия Рора? и т.д.

4. config/environments/development.rb . Я даже дважды проверил правильность настройки консоли rails Rails.application.config.action_mailer.delivery_method . Рельсы 6.1.1

5. config.action_mailer.perform_deliveries настроено на false ?

Ответ №1:

Я согласен с другим комментатором в том, что лучший способ предотвратить все поставки-это использовать конфигурацию action_mailer.

Однако, если вам нужен альтернативный подход, который позволил бы перенаправлять любую почту или прекращать доставку на основе динамического набора условий и т. Д., Я бы посоветовал вам проверить Перехватчики почты:

http://guides.rubyonrails.org/action_mailer_basics.html#intercepting-emails