Rails 5.2没有加载环境变量

时间:2018-06-01 16:28:05

标签: ruby-on-rails environment-variables

我已定义Gmail用户名和密码,以便在ActionMailer配置中用于发送电子邮件并以这种方式在配置中使用它们:

config.action_mailer.smtp_settings = {
    address:              "smtp.gmail.com",
    port:                 587,
    domain:               "example.com",
    authentication:       :plain,
    user_name:            ENV["GMAIL_USERNAME"],
    password:             ENV["GMAIL_PASSWORD"],
    enable_starttls_auto: true
}

使用此设置,电子邮件不会发送,但是如果我手动输入用户名和密码作为字符串,则可以使用。 我已经知道变量是在rails console中正确定义的:

rails c
ENV["GMAIL_USERNAME"] #=> "my_username"

我已退出并重新登录系统并重新启动终端以获取我的.bash_profile echo $GMAIL_USERNAME返回正确的值。 在todos#index操作puts ENV["GMAIL_USERNAME"]中,它还会返回正确的用户名。为什么它不起作用呢?有什么想法吗?

2 个答案:

答案 0 :(得分:0)

所以,你在服务器上运行它?你面前有apache或nginx吗?将GMAIL_USERNAME放入用户的.bashrc将无济于事,因为您运行rails app的任何服务器都无法读取.bashrc

答案 1 :(得分:0)

我刚刚使用Sendgrid设置我的Rails应用程序,但它确实有效,因此必须存在一些Gmail问题。过去曾经为我工作,所以也许他们改变了一些东西。