2013-02-23 1 views
1

J'ai configuré le courrier électronique sur redmine selon les instructions de la Redmine wiki, et tout fonctionne correctement. Voici le contenu de mon fichier config/configuration.yml:Configuration de la messagerie Redmine avec les variables d'environnement

production: 
delivery_method: :smtp 
smtp_settings: 
    address: "smtp.sendgrid.net" 
    port: 587 
    authentication: :plain 
    domain: "heroku.com" 
    user_name: [email protected] 
    password: my_password 

Cependant, je suis en train d'utiliser des variables d'environnement en place de [email protected] et mon_mot_de_passe comme ceci:

production: 
    delivery_method: :smtp 
    smtp_settings: 
    address: "smtp.sendgrid.net" 
    port: 587 
    authentication: :plain 
    domain: "heroku.com" 
    user_name: <%= ENV['SENDGRID_USERNAME'] %> 
    password: <%= ENV['SENDGRID_PASSWORD'] %> 

Quand je essayez d'envoyer un e-mail de test, les variables d'environnement dans le fichier de configuration, donner Redmine cette erreur:

'An error occurred while sending mail (535 Authentication failed: Bad username/password)'.

donc je suppose que l'extrait de erb n'est pas en cours d'évaluation (je revérifié e les valeurs des variables d'environnement).

J'ai cherché une solution et suis vide, est-ce que quelqu'un a des suggestions sur la façon dont je devrais configurer le courrier électronique dans redmine pour que je n'expose pas mes informations d'identification sendgrid dans le fichier de configuration?

Sinon, si quelqu'un peut me dire que ce n'est pas un risque de sécurité d'utiliser les informations d'identification directement, sans variables d'environnement, cela résoudrait également mon problème.

Répondre

6

J'ai répondu à cette question il y a 2 semaines et elle a été effacée par quelqu'un d'autre tout de suite. Donc, je ne suis pas sûr si quelqu'un va supprimer cette réponse à nouveau pour empêcher les autres gars de savoir comment résoudre ce problème. Bonne chance! J'ai eu le même problème et cet article Set up mailing in redmine on heroku a résolu mon problème. L'idée est de déplacer les paramètres de config/configuration.yml à config/environments/production.rb et d'utiliser le code Ruby pour le configurer. Puisque ENV['key'] est géré par erb, je suppose que configuration.yml n'est pas géré de cette façon. Peut-être qu'il y a un problème de sécurité?

Donc dans votre cas, vous devez ajouter ces codes à config/environments/production.rb comme suit,

ActionMailer::Base.smtp_settings = { 
    :address  => 'smtp.sendgrid.net', 
    :port   => '587', 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => 'heroku.com' 
} 
ActionMailer::Base.delivery_method = :smtp 

et supprimer les codes de config/configuration.yml et faire ressemble à ceci,

default: 
    # Outgoing emails configuration (see examples above) 
    email_delivery: 
    delivery_method: :smtp 
Questions connexes