我刚刚设置了Devise(rails身份验证插件)在注册时发送一封确认邮件。这包括我将以下内容放入我的environment.rb文件:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:tls => true,
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => :login,
:user_name => "[my email]",
:password => "[my pass]"
}
我显然不想把这件事推给github,因为我的传球只是坐在那里。这里有标准的做法吗?
4条答案
按热度按时间uinbv5nw1#
标准是将您的配置设置放在一个YAML文件中,而该文件不包含在您的存储库中。
然后您只需从中获取数据。
检查Railscast“#85 YAML Configuration File“以查看它的运行情况。
iovurdzv2#
apneadiving是正确的,添加到他的解决方案,其他人下载你的代码,可能不会很快弄清楚如何生成这个yml,所以你需要给予他们一个提示,通过以下结构:
文件'mail_settings.yml'包含您的敏感信息,不包括在存储库中,并有'main_settings.yml.example'包括在您的存储库中,并具有相同的结构作为'mail_settings. yml'。
为了更有帮助,请在自述文件中提供一个部分,说明人们需要将mail_settings.yml.example文件复制到mail_settings.yml并增强其内容。
htrmnn0y3#
创建一个包含邮件设置的配置文件,并从一个文件中加载这些设置。签入配置文件并删除所有设置。让应用程序检查文件是否已填充,如果没有,则显示错误并正常退出(或者禁用邮件,但要确保用户知道发生了什么)。
这样做的另一个好处是,用户可以轻松地更改邮件设置,而不必编辑代码。一般来说,告诉用户编辑代码来设置配置是一个坏主意。此外,您可以将配置与代码放在不同的位置,这样更容易访问。
fdx2calv4#
在Rails 5.2以上版本中,使用Rails凭据。请参见tutorial here