您想要保护密码是正确的。
如果您使用的是旧版本的 Rails(4.0 或更低版本),您可以使用此处找到的 Figaro gem...
https://github.com/laserlemon/figaro
您将拥有一个“config/application.yml”文件(默认情况下)不会上传到您的存储库。你会把它包括在...
email_user_name: "emailaddress@gmail.com"
email_password: "mypassword"
然后在您的环境中使用...
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "127.0.0.1",
authentication: "login",
enable_starttls_auto: true,
user_name: ENV["email_user_name"],
password: ENV["email_password"]
}
......这一切都非常好。在生产中,您将环境变量设置为秘密信息。
Rails 4.1 提供了一个secrets.yml
类似的工作...
development:
email_user_name: emailaddres@gmail.com
email_password: mypassword
...然后在使用中,您使用...检索值
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "127.0.0.1",
authentication: "login",
enable_starttls_auto: true,
user_name: Rails.application.secrets.email_user_name,
password: Rails.application.secrets.email_password
}