我有一個軌道應用程序運行在一個階段環境,這是一個生產的準確副本。我希望能夠發送郵件給ActionMailer,以測試它是否可以正常工作,但爲了防止出現任何錯誤,我非常希望能夠限制郵件發送到任何未啓用的地址我自己的領域。限制ActionMailer到一個域
ActionMailer似乎並不支持這一點,但是有沒有插件或者某種補丁,可以這樣做?
我有一個軌道應用程序運行在一個階段環境,這是一個生產的準確副本。我希望能夠發送郵件給ActionMailer,以測試它是否可以正常工作,但爲了防止出現任何錯誤,我非常希望能夠限制郵件發送到任何未啓用的地址我自己的領域。限制ActionMailer到一個域
ActionMailer似乎並不支持這一點,但是有沒有插件或者某種補丁,可以這樣做?
我做成功如下:
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.
看看sanitize_email寶石 - 這是一個很好的解決方案。
它不允許您指定域,但它確實允許您限制將電子郵件發送到特定的收件人列表,這將阻止任何電子郵件轉到意外收件人。
看看mail_safe的寶石。它有點類似於sanitize_email gem,但允許繼續發送正常列入白名單的域/電子郵件的電子郵件。而this blog post(不是我的)涵蓋了sanitize_email和mail_safe的配置和用法。