2010-08-09 13 views
5

Ich habe eine Rails-Anwendung in einer Staging-Umgebung, die eine genaue Kopie der Produktion ist. Ich möchte in der Lage sein, mit ActionMailer E-Mails zu versenden, um zu testen, ob alles funktioniert, aber um Fehler zu vermeiden, möchte ich den Mailer gerne daran hindern, an Adressen zu senden, die nicht aktiv sind meine eigene Domain.ActionMailer auf eine Domäne beschränken

Es scheint nicht, dass ActionMailer dies von Anfang an unterstützt, aber gibt es ein Plugin oder vielleicht ein Patch von einer Art, die das tun könnte?

Antwort

2

ich mit Erfolg folgende tue:

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 

Sie benötigen dieses Modul in allen Ihren Mailer aufzunehmen. Dies funktioniert in Rails 2.3.8, ich weiß nicht, ob es in Rails 3 funktioniert.

1

Werfen Sie einen Blick auf die sanitize_email Edelstein - es ist eine feine Lösung dafür.

Sie können keine Domäne angeben, aber Sie können die E-Mail-Versendung auf eine bestimmte Empfängerliste beschränken, wodurch verhindert wird, dass E-Mails an unbeabsichtigte Empfänger gesendet werden.

0

Schauen Sie sich das mail_safe-Juwel an. Es ist etwas ähnlich wie "sanitize_email", erlaubt aber weiterhin das Senden von E-Mails für Domains/E-Mails auf der weißen Liste. Und this blog post (nicht meins) umfasst sowohl die Konfiguration als auch die Verwendung von Edelsteinen und Edelsteinen "sanitize_email" und "mail_safe".

Verwandte Themen