[英]Redmine email configuration with environment variables
我已經根據redmine Wiki中的說明在redmine上配置了電子郵件,並且一切正常。 這是我的config / configuration.yml文件的內容:
production:
delivery_method: :smtp
smtp_settings:
address: "smtp.sendgrid.net"
port: 587
authentication: :plain
domain: "heroku.com"
user_name: my_email@gmail.com
password: my_password
但是我試圖使用環境變量代替my_email@gmail.com和my_password,如下所示:
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'] %>
當我嘗試發送測試電子郵件時,在配置文件中包含環境變量,redmine會出現此錯誤:
“發送郵件時發生錯誤(535身份驗證失敗:用戶名/密碼錯誤)”。
因此,我認為erb代碼段沒有被評估(我已經仔細檢查了環境變量的值)。
我一直在尋找解決方案,卻空無一人,有人對我應如何在Redmine中配置電子郵件以使我不會在配置文件中公開sendgrid憑據有任何建議嗎?
或者,如果有人可以告訴我沒有環境變量而直接使用憑據沒有安全風險,那也可以解決我的問題。
我已經在2周前回答了這個問題,並且其他人立即將其刪除。 因此,我不確定是否有人會再次刪除此答案,以防止其他人知道如何解決此問題。 祝好運!
我遇到了同樣的問題,這篇文章在heroku上的Redmine中設置郵件解決了我的問題。
這個想法是將設置從config/configuration.yml
移到config/environments/production.rb
並使用Ruby代碼進行設置。 由於ENV['key']
由erb
處理,所以我猜configuration.yml
不是這樣處理的。 也許有一些安全問題?
因此,在您的情況下,您應該將這些代碼添加到config/environments/production.rb
,如下所示:
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
然后從config/configuration.yml
刪除代碼,使其看起來像這樣,
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :smtp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.