2010-08-09 61 views
5

我有一個軌道應用程序運行在一個階段環境,這是一個生產的準確副本。我希望能夠發送郵件給ActionMailer,以測試它是否可以正常工作,但爲了防止出現任何錯誤,我非常希望能夠限制郵件發送到任何未啓用的地址我自己的領域。限制ActionMailer到一個域

ActionMailer似乎並不支持這一點,但是有沒有插件或者某種補丁,可以這樣做?

回答

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

看看sanitize_email寶石 - 這是一個很好的解決方案。

它不允許您指定域,但它確實允許您限制將電子郵件發送到特定的收件人列表,這將阻止任何電子郵件轉到意外收件人。

0

看看mail_safe的寶石。它有點類似於sanitize_email gem,但允許繼續發送正常列入白名單的域/電子郵件的電子郵件。而this blog post(不是我的)涵蓋了sanitize_email和mail_safe的配置和用法。