我不想将我们的gmail帐户的帐户和密码放在生产应用配置文件中。
而是我想进行设置,以便此信息位于单独的yml文件中,该文件不会存储在我们的git存储库中。我们使用其他需要保护的数据来执行此操作,但我没有看到使用action_mailer执行此操作的直接方法。
换句话说,我希望action_mailer从environment / production.rb配置文件中的action_mailer_config.yml中读取配置信息。
答案 0 :(得分:0)
最近在railscast上讨论了此要求。 http://railscasts.com/episodes/85-yaml-configuration-revised
请务必查看替代宝石的评论。
答案 1 :(得分:0)
只需创建一个分配环境变量的初始化文件。因此,在您的生产环境中,您将拥有:
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "chicheng.com.tw",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"],
:openssl_verify_mode => 'none'
}
然后添加一个初始化文件,分配用户名和密码,如下所示:
ENV["GMAIL_USERNAME"] = "your_username@gmail.com"
ENV["GMAIL_PASSWORD"] = "your_password"
要记住的一件重要事情是将此初始化程序文件添加到git ignore中。然后,当您将其推上时,您需要手动确保包含此文件。
老实说,而不是使用单独的文件,我更喜欢直接在服务器上设置ENV。这样我就不用担心文件意外被推了。
答案 2 :(得分:0)
这是一个较旧的问题,所以你可能已经有了答案,但是我使用Heroku进行了部署,它们允许你从cli中设置配置变量(如ENV)。如果您的提供商允许类似的实施,则值得检查。它让事情变得容易多了。 Here's一篇有更好解释的文章。