我已经在ActionMailer配置中定义了用来发送电子邮件的Gmail用户名和密码,并在配置中以这种方式使用它们:
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控制台中正确定义了变量:
rails c
ENV["GMAIL_USERNAME"] #=> "my_username"
我已经注销并重新登录到系统,并重新启动终端以获取我的.bash_profile echo $GMAIL_USERNAME
返回的正确值。在todos#index
操作中,我使用puts ENV["GMAIL_USERNAME"]
,它也会返回正确的用户名。为什么它不起作用呢?有什么想法吗?
发布于 2018-06-02 03:32:09
我刚刚用Sendgrid设置了我的Rails应用程序,它工作正常,所以这一定是Gmail的问题。这在过去对我来说是有效的,所以也许他们改变了一些东西。
发布于 2018-06-02 03:05:58
那么,你是在服务器上运行的吗?在它前面有apache或nginx吗?将GMAIL_USERNAME
放到用户的.bashrc
中不会有任何帮助,因为无论您通过哪个服务器运行rails应用程序,都不会读取.bashrc
https://stackoverflow.com/questions/50647640
复制相似问题