2010-11-23 2 views
2

Je commence une nouvelle application Rails 3 à partir de zéro.Quelle est l'approche des «meilleures pratiques» pour configurer les valeurs par défaut globales personnalisées des e-mails dans Rails?

Et pendant que j'allais à travers la configuration de base (la configuration des gemmes, des sessions, etc.) j'ai couru dans quelque chose qui m'a harcelé pendant un moment.

Notre système actuel (un mélange de scripts Ruby & Rails 2 app) envoie diverses notifications par email/fax aux clients. Il y a certaines choses qui sont communes dans 80% des cas - cc - certains comptes de courriel sur notre signature de fin et d'email.

Auparavant, je viens de définir GLOBALS dans la environment.rb tels que

SYSTEM_EMAIL_SIGNATURE 

ou

SYSTEM_EMAIL_NOTIFY 

et les ont utilisés plus tard dans mailers ou si elle était un script autonome j'avais une configuration Fichier .rb - qui a eu un tas de paramètres communs - y compris un avec des paramètres de messagerie personnalisés comme celui-ci.

Depuis que je reconstruis cette application à partir de zéro et consolide tous les scripts dans une application ruby ​​- j'essayais de trouver une meilleure façon de le faire.

En ce moment je suis la mise en place d'un initialiseur email.rb qui a action_mailer paramètres, que j'étendu en ajoutant quelques éléments:

 ########## Setup Global Email Defaults ############## 
Site::Application.configure do 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address => 'mail.example.com', 
    :port => 25, 
    :domain => 'example.com', 
    # These are custom to OUR setup - used later in the code 
    :default_from => '[email protected]', 
    :default_notify => ["[email protected]"], 
    :default_signature => " 
--------------------------- 
This is an automatic email. 
If you have any questions please contact customer service 
at 1 (800) 888-0000 or go to http://www.example.com. 
Thank you for your business!" 

    } 



end 

Alors est-ce une bonne approche? Ou y a-t-il un meilleur moyen que ces deux approches?

Répondre

2

Je pense que vous êtes sur la bonne voie pour default_from et default_notify. Je n'utiliserais pas les paramètres SMTP pour cela; ce ne sont pas des paramètres SMTP, ce sont juste des paramètres généraux de mailer.

je partirais avec quelque chose comme ça dans un initialiseur: Avec un fichier YAML

MAILER_SETTINGS = YAML::load(open(File.join(Rails.root, "config", "mailer.yml")).read)[Rails.env] 

qui ressemble à ceci:

development: &development 
    default_from: [email protected] 
    default_notify: ["[email protected]"] 

production: 
    <<: *development 
    default_from: [email protected] 

Cela vous permet de définir les valeurs par défaut, puis en cascade vers le bas et Remplacer par environnement si désiré.

Cependant, pour la signature, je voudrais juste déplacer cela dans un partiel, que vous incluez ensuite dans vos modèles de courrier. Ils sont des vues comme les autres et peuvent avoir des dispositions, partiels, et tout cela.

+0

Merci pour le pointeur! – konung

Questions connexes