我有一个在临时环境中运行的rails应用程序,它是生产的准确副本。我希望能够使用ActionMailer发送邮件,以测试它是否正常工作,但为了防止任何错误,我非常希望能够限制邮件程序发送到任何不在的地址我自己的域名。
似乎ActionMailer从开始就不支持这个,但是有插件还是某种补丁可以做到这一点?
答案 0 :(得分:2)
我正在取得成功:
module FilteredMailer
def self.included(base)
base.class_eval do
alias_method :create_mail_orig, :create_mail
def create_mail
recipients(filter_out_recipients(recipients))
create_mail_orig
end
end
end
private
def filter_out_recipients(recipients)
...
end
end
您需要在所有邮件程序中包含此模块。这适用于Rails 2.3.8,我不知道它是否适用于Rails 3。
答案 1 :(得分:1)
看看sanitize_email宝石 - 这是一个很好的解决方案。
它不允许您指定域名,但它允许您限制电子邮件发送到特定的收件人列表,这将阻止任何电子邮件发送到非预期的收件人。
答案 2 :(得分:0)
查看mail_safe gem。它有点类似于sanitize_email gem,但允许继续正常发送白名单域名/电子邮件的电子邮件。而this blog post(不是我的)涵盖了sanitize_email和mail_safe gems的配置和使用。