Ruby on rails ArgumentError(请求SMTP-AUTH,但缺少用户名)

Ruby on rails ArgumentError(请求SMTP-AUTH,但缺少用户名),ruby-on-rails,smtp,actionmailer,Ruby On Rails,Smtp,Actionmailer,我正在开发一个名为PhotoApp的基本应用程序,我正在学习如何使用rails设置SMTP。我以前在SMTP中使用过基本的Ruby,我知道我的电子邮件是有效的,只是发送的电子邮件会进入垃圾邮件文件夹 但是当我试图在Rails上配置SMTP时,我得到了ArgumentError(SMTP-AUTH请求但缺少用户名):,这就是为什么每次用户注册时,应用程序推送到heroku时都会崩溃的主要原因 下面是我的config/environments/development.rb: config.act

我正在开发一个名为PhotoApp的基本应用程序,我正在学习如何使用rails设置SMTP。我以前在SMTP中使用过基本的Ruby,我知道我的电子邮件是有效的,只是发送的电子邮件会进入垃圾邮件文件夹

但是当我试图在Rails上配置SMTP时,我得到了
ArgumentError(SMTP-AUTH请求但缺少用户名):
,这就是为什么每次用户注册时,应用程序推送到heroku时都会崩溃的主要原因


下面是我的config/environments/development.rb:

config.action\u mailer.default\u url\u options={host:'localhost:8080'}
config.action\u mailer.delivery\u method=:smtp
config.action\u mailer.smtp\u设置={
地址:'smtp.gmail.com',
港口:587,
域:'example.net',
身份验证:“普通”,
启用\u starttls\u auto:true,
用户名:“gmail\u电子邮件”,
密码:“…”
}
config.action\u mailer.raise\u delivery\u errors=true
config.action\u mailer.perform\u deliveries=true
我在开发模式下运行localhost:8080上的服务器,因此我的主机设置为localhost:8080

除此之外,我无法让我的应用程序使用我的gmail用户名和rails中的SMTP

编辑,此ruby代码可以工作:

#!/usr/bin/ruby -w
require 'net/smtp'

message = <<~EOF
    From: mygmail@gmail.com
    To: someone@protonmail.com
    Subject: Hello!

    Hello!
        #{"HELLO ".*(50).delete_suffix(?\s)}
EOF

Net::SMTP.new('smtp.gmail.com', 587).tap(&:enable_starttls_auto).start('gmail.com', 'mygmail@gmail.com', 'mygmailpass', :plain) do |smtp|
    smtp.send_message message, 'mygmail@gmail.com', 'someone@protonmail.com'
end

#/usr/bin/ruby-w
需要“net/smtp”

message=
user\u name
应该是gmail地址。e、 g.
abcdexample@gmail.com
密码将是该gmail地址的密码是的,我这样做了。更改后您重新启动了服务器吗?是的,我这样做了,我认为这是一个错误,因为一切都设置正确,
Rails.application.config.action\u mailer.smtp\u settings[:user\u name]
还会返回我的电子邮件地址。