我看了一下535-5.7.8 Username and Password not accepted in Rails Mailer using Gmail,他们的问题和我的类似,我不确定他们是否解决了这个问题。
我在gmail账户上设置了一个应用程序密码。
我想通过该gmail帐户向我们的用户发送帐户激活和密码重置电子邮件。
下面是我的配置:
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'appname.com', # has not gone on line yet - does that matter?
:user_name => ENV['GMAIL_APP_USER'], # "[email protected]"
:password => ENV['GMAIL_APP_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true,
:openssl_verify_mode => 'none',
}
config.action_mailer.perform_caching = false
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => 'appname.com' }
# again, it's not on line yet, but it seems like I need something
# I haven't found what exactly this field is for
字符串
每当我点击将发送电子邮件的端点时,我的日志中都会出现以下内容:
I, INFO -- : Delivered mail [email protected] (287.1ms)
[ ("MYHOSTNAME" is my actual hostname, but it's not mentioned in the above config) ]
I, INFO -- : Completed 500 Internal Server Error in 587ms (ActiveRecord: 16.5ms | Allocations: 18589)
F, FATAL -- :
Net::SMTPAuthenticationError (535-5.7.8 Username and Password not accepted. Learn more at
):
app/models/user.rb:35:in `send_activation_email'
app/controllers/account_activations_controller.rb:18:in `create'
型
从另一篇文章中,我可以看到“了解更多”错误消息来自Gmail/Google,基本上那篇文章告诉我使用应用程序密码。
我 * 正在 * 使用应用程序密码,并已在该电子邮件帐户上启用2FA。
应用程序密码由4组四个字母组成,每组后面有一个空格。无论我是否保留空格,我都会得到相同的结果。
我是否需要做些什么来让gmail知道这是一个应用程序密码,而我没有泄露实际的帐户密码?
我读了几十篇关于这个主题的文章,都说了同样的话,让我觉得我没有做一些明显的事情。
代码在github中,但凭据不在。因此,如果有人有兴趣深入研究,请与我联系,我将解释如何将凭据提供给Rails应用程序。
1条答案
按热度按时间i7uaboj41#
把它弄出来...
不要在
.rbenv-vars
文件中的secret周围使用双引号,否则它们将成为实际字符串的一部分。你还可以把谷歌应用程序密码中的空格去掉,把密码分成四部分,这样你就可以在房间的另一头向同事喊出密码,而不会忘记自己在哪里。