0

我已经让动作邮件程序开始工作,但我想确保我正在保护我最终使用的用户名/密码组合。这是为 ea 公司开发的,将使用他们的凭据、电子邮件地址等

以下是我在开发环境中使用 Gmail 作为测试的内容:

  config.action_mailer.smtp_settings = {
    address: "smtp.gmail.com",
    port: 587,
    domain: "127.0.0.1",
    authentication: "login",
    enable_starttls_auto: true,
    user_name: "emailaddress@gmail.com",
    password: "mypassword"
  }
4

1 回答 1

1

您想要保护密码是正确的。

如果您使用的是旧版本的 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
  }
于 2014-07-18T13:44:24.557 回答