2010-08-20 9 views
0

En ce moment, j'ai défini mon paramètre smtp dans le fichier environment.rb. J'ai stocké tous mes paramètres dans la base de données.Paramètre smtp du correcteur d'actions de liaison à partir du modèle

Je veux lier les paramètres SMTP de mon modèle.

Comment puis-je lier dynamiquement ces paramètres à partir du modèle?

+2

Les paramètres SMTP peuvent être définis dynamiquement dans le modèle. Je suis également tombé sur ceci parce que Gmail autorise seulement 500 emails par jour. J'ai trouvé quelques solutions, mais celui qui a le mieux fonctionné est la première http://blog.honustudios.com/2009/04/multiple-gmail-accounts-in-rails/ – s84

+0

Merci .. Cela fonctionne pour moi . –

Répondre

1
class UserMailer < ActionMailer::Base 

    UserMailer.smtp_settings = { 
     :tls   => Model.find_by_column_name("SMTP_TLS").column_name, 
     :address  => Model.find_by_column_name("SMTP_ADDRESS").column_name, 
     :port   => Model.find_by_column_name("SMTP_PORT").column_name, 
     :domain   => Model.find_by_column_name("SMTP_DOMAIN").column_name 
    } 

    def mail_example(to_address,subject,options={}) 
    sender(to_address,subject,options) 
    end 

    def sender(to_address,subject,options) 
    recipients to_address 
    from Model.find_by_column_name("SMTP_FROM_ADDRESS").column_name 
    subject subject 
    sent_on Time.now 
    body options 
    end 
end 

J'ai créé une fonction d'expéditeur commune. Peut être cela aidera.

4

AVERTISSEMENT: smtp_settings est une variable de classe et non une variable d'instance. Si le serveur utilise un processus ruby ​​différent pour chaque requête utilisateur, la méthode ci-dessus fonctionnera. Si un nouveau processus n'est pas bifurqué mais qu'un thread est créé à la demande de l'utilisateur, il peut y avoir une condition de concurrence.