ruby-on-rails 为什么我不能使用典型的Rails Mailer配置从Rails在生产环境中发送电子邮件?

ogq8wdun  于 2023-11-20  发布在  Ruby
关注(0)|答案(1)|浏览(92)

我看了一下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应用程序。

i7uaboj4

i7uaboj41#

把它弄出来...
不要在.rbenv-vars文件中的secret周围使用双引号,否则它们将成为实际字符串的一部分。
你还可以把谷歌应用程序密码中的空格去掉,把密码分成四部分,这样你就可以在房间的另一头向同事喊出密码,而不会忘记自己在哪里。

相关问题