Старый вопрос, но первый удар по Google ...
В конце концов я решил эту проблему другим способом, используя (ab) delivery_method = :sendmail
, этот эффект просто направляет электронное письмо на что-то исполняемое; предполагается, что это sendmail
, но на самом деле это может быть что угодно.
В вашем config/environments/development.rb
вы можете сделать что-то вроде:
YourApp::Application.configure do
# [...]
config.action_mailer.delivery_method = :sendmail
config.action_mailer.sendmail_settings = {
location: "#{Rails.root}/script/fake-sendmail",
arguments: 'martin+rails@arp242.net',
}
end
А потом сделать script/fake-sendmail
:
#!/bin/sh
sendmail -if fake_sendmail@example.com "$1" < /dev/stdin
(не забудьте сделать этот исполняемый файл!)
Родственное решение (которое я предпочитаю) - просто добавить его в файл mbox; это потребовало очень мало настроек.
config/environments/development.rb
выглядит аналогично:
YourApp::Application.configure do
# [...]
config.action_mailer.delivery_method = :sendmail
config.action_mailer.sendmail_settings = {
location: "#{Rails.root}/script/fake-sendmail",
arguments: "'#{Rails.root}/tmp/mail.mbox'",
}
end
И script/fake-sendmail
теперь выглядит так:
#!/bin/sh
echo "From FAKE-SENDMAIL $(date)" >> "$1"
cat /dev/stdin >> "$1"
echo >> "$1"
Откройте файл mbox с помощью $any
почтового клиента ...
Это очень простой метод, который, кажется, работает довольно хорошо. Некоторые подробности можно найти здесь (я автор этой страницы).