我已定义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"]
中,它还会返回正确的用户名。为什么它不起作用呢?有什么想法吗?
答案 0 :(得分:0)
所以,你在服务器上运行它?你面前有apache或nginx吗?将GMAIL_USERNAME
放入用户的.bashrc
将无济于事,因为您运行rails app的任何服务器都无法读取.bashrc
答案 1 :(得分:0)
我刚刚使用Sendgrid设置我的Rails应用程序,但它确实有效,因此必须存在一些Gmail问题。过去曾经为我工作,所以也许他们改变了一些东西。