我在Rails 4应用中设置了一个联系表单,该表单将使用Gmail发送电子邮件。首先,我让它在config / environments / development.rb中使用这些设置:
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: 'myusername@gmail.com',
password: 'MyPassword',
authentication: 'plain',
enable_starttls_auto: true
}
然后我使用this方法在config / environment_variables.yml中设置环境变量并使用config / initializers / environment_varibles.rb加载它,并将config / environments / development.rb中的SMTP设置更改为:< / p>
config.action_mailer.delivery_method = :smtp
config.action_mailer.raise_delivery_errors = true
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"],
authentication: 'plain',
enable_starttls_auto: true
}
我的config / environment_variables.yml文件如下所示:
development:
GMAIL_USERNAME: myusername@gmail.com
GMAIL_PASSWORD: MyPassword
production:
GMAIL_USERNAME: myusername@gmail.com
GMAIL_PASSWORD: MyPassword
现在,邮件程序向我提供错误“Net :: SMTPAuthenticationError”。我发现非常奇怪的是,当我启动服务器时,环境变量似乎可以正常加载。我在rails控制台中检查了这个:
2.3.0 :001 > ENV["GMAIL_USERNAME"]
=> "myusername@gmail.com"
2.3.0 :002 > ENV["GMAIL_PASSWORD"]
=> "MyPassword"
我在工作硬编码原始解决方案和非工作环境变量solurion之间来回切换。我已经多次检查过凭证的拼写。我已经找了两天的解决方案了,我觉得我错过了一些简单的事情。
有没有人知道问题可能是什么? : - )