action_mailer配置在自己的文件中

时间:2012-10-22 17:07:56

标签: ruby-on-rails gmail actionmailer

我不想将我们的gmail帐户的帐户和密码放在生产应用配置文件中。

而是我想进行设置,以便此信息位于单独的yml文件中,该文件不会存储在我们的git存储库中。我们使用其他需要保护的数据来执行此操作,但我没有看到使用action_mailer执行此操作的直接方法。

换句话说,我希望action_mailer从environment / production.rb配置文件中的action_mailer_config.yml中读取配置信息。

3 个答案:

答案 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一篇有更好解释的文章。