ActionMailer и режим разработки, может ли он писать в файл или что-то в этом роде?

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

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

Это возможно?

Какие варианты у меня есть?


person Blankman    schedule 12.03.2011    source источник


Ответы (3)


Это настраивается в файлах config/environments/*.rb.

# output to tmp/mails directory
config.action_mailer.delivery_method = :file
# ... and to specify output location
# config.action_mailer.file_settings = { :location => Rails.root.join('tmp/mail') }

Подробную информацию можно найти в разделе конфигурации на сайте Основы Action Mailer или на ActionMailer::Base API


Rails 4.2 :file источник метода доставки и Mail::Источник FileDelivery

person HakonB    schedule 12.03.2011
comment
+1 не знал об этой опции и, безусловно, мог бы использовать ее сам. - person Brian; 13.03.2011
comment
не забудьте перезагрузить сервер после внесения изменений в конфигурацию. ;) - person Craig Monson; 03.08.2011
comment
Дополнительная информация почти пуста с точки зрения объяснения опции файла. - person jcollum; 08.06.2013
comment
Я нашел эту страницу более информативной по использованию :file api.rubyonrails.org/classes/ ActionMailer/Base.html - person ryanjones; 09.07.2013

LetterOpener еще больше упрощает предварительный просмотр писем, которые вы только что отправили, автоматически открывая файл в браузере ( в среде разработки, конечно).

person lulalala    schedule 27.02.2013
comment
у меня не работает на Rails 4. Я бы хотел, чтобы в их Readme было больше информации или указывалось на руководство по rails 4. Кажется, это круто, но документация для новых пользователей не очень хороша. - person cwd; 25.09.2014
comment
работает для одноразовой проверки того, что электронное письмо было отправлено, но я могу порекомендовать mailcatcher для срок тестирования - person Jake Berger; 04.02.2015

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

person fakeleft    schedule 18.08.2017