Rails 4 个动作邮件程序环境变量
Rails 4 action mailer environment variables
我正在 Rails 4 应用程序中使用 actionmailer 创建简单的表单到电子邮件表单。
当我在 development.rb 文件中使用以下设置时,一切正常:
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "mail.hover.com",
port: 587,
domain: "blah.com",
user_name: "dennis@blah.com",
password: "thisBeMyPassword",
authentication: 'plain',
enable_starttls_auto: true,
openssl_verify_mode: 'none'
}
但是当我尝试在我的代码中使用 ENV 变量时,我收到身份验证失败错误:
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "mail.hover.com",
port: 587,
domain: "blah.com",
user_name: "dennis@blah.com",
password: ENV["MY_EMAIL_PASSWORD"],
authentication: 'plain',
enable_starttls_auto: true,
openssl_verify_mode: 'none'
}
当我在控制台中使用 printenv
以及在代码中粘贴 puts ENV["MY_EMAIL_PASSWORD"]
时,我可以在终端中看到这个变量。
我已经对拼写、大小写等进行了三重检查
我看不出问题,但我可以推荐 figaro gem。它使处理环境变量变得非常容易。试试看,让我知道。
我正在 Rails 4 应用程序中使用 actionmailer 创建简单的表单到电子邮件表单。
当我在 development.rb 文件中使用以下设置时,一切正常:
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "mail.hover.com",
port: 587,
domain: "blah.com",
user_name: "dennis@blah.com",
password: "thisBeMyPassword",
authentication: 'plain',
enable_starttls_auto: true,
openssl_verify_mode: 'none'
}
但是当我尝试在我的代码中使用 ENV 变量时,我收到身份验证失败错误:
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "mail.hover.com",
port: 587,
domain: "blah.com",
user_name: "dennis@blah.com",
password: ENV["MY_EMAIL_PASSWORD"],
authentication: 'plain',
enable_starttls_auto: true,
openssl_verify_mode: 'none'
}
当我在控制台中使用 printenv
以及在代码中粘贴 puts ENV["MY_EMAIL_PASSWORD"]
时,我可以在终端中看到这个变量。
我已经对拼写、大小写等进行了三重检查
我看不出问题,但我可以推荐 figaro gem。它使处理环境变量变得非常容易。试试看,让我知道。