gpt4 book ai didi

ruby-on-rails - Rails 4 Action 邮件程序 SMTP-AUTH 错误缺少密码?

转载 作者:行者123 更新时间:2023-12-04 13:46:03 26 4
gpt4 key购买 nike

我在通过 gmail 使用 Rails 4 Action 邮件程序发送电子邮件时遇到问题。一切都应该如此简单......但它不起作用。具体来说,我得到了

ArgumentError (SMTP-AUTH requested but missing secret phrase):

我在这里阅读了有关这种情况的其他问题,但其中大多数都有简单的修复(“user_name”而不是“username”,或者 ENV 变量错误)。我已经仔细检查过,我确定我的凭据是正确的。这是我的 development.rb 的相关部分:

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

我最初拥有明文形式的凭据,但我认为也许我应该将它们移至环境变量以解决问题。它没有改变任何东西。请注意,我的 gmail 是公司的 gmail,因此它实际上并没有以“@gmail.com”结尾。我不确定这是否会改变什么,但我想我会提到它。我也试过使用标准的 gmail 地址,它没有任何改变。

此外,“缺少密码”是否指密码错误?还是一开始就找不到密码?还有什么可能导致错误?感谢您的宝贵时间。

最佳答案

我刚刚在我正在开发的应用程序中处理了一个非常相似的场景。我收到了完全相同的“请求 SMTP-AUTH 但缺少密码”错误。最终为我解决问题的是两方面的:

1) 确保您使用的是 gmail 的应用程序专用密码。 Instructions from Google here > 如何生成 App 密码。请注意,如果您还没有双因素身份验证,则还需要先进行设置。您最终会得到一个 16 个字符长的应用程序密码。您将使用它作为 Rails 通过 SMPT 设置使用的密码。

2) 确保您已正确设置本地环境变量文件,以便在编译 Rails 应用程序时加载该文件,并通过将文件名放入 gitignore 中将其排除在 git 跟踪之外。我使用一个名为 app_name/config/local_env.yml 的文件,但您也可以使用 Rails 4.2 附带的标准 secrets.yml 文件,或者 figaro gem 在管理 ENV 变量方面非常流行。 This RailsApps page很好地概述了如何管理 ENV 变量。

最终,我的 SMTP 设置看起来与您的几乎相同:

#GMAIL CONFIG
config.action_mailer.default_url_options = { :host =>'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: "gmail.com",
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}

祝你好运!

关于ruby-on-rails - Rails 4 Action 邮件程序 SMTP-AUTH 错误缺少密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com