Ruby on rails 尝试在RoR应用中发送电子邮件时遇到SMTP错误

Ruby on rails 尝试在RoR应用中发送电子邮件时遇到SMTP错误,ruby-on-rails,ruby,email,gmail,Ruby On Rails,Ruby,Email,Gmail,我一直在拼命尝试使用RoR中的Action Mailer类发送电子邮件,即使终端显示正在发送消息,它仍会返回此错误: et::SMTPAuthenticationError: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtOS from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smt

我一直在拼命尝试使用RoR中的Action Mailer类发送电子邮件,即使终端显示正在发送消息,它仍会返回此错误:

 et::SMTPAuthenticationError: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbtOS

from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:968:in `check_auth_response'
from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:739:in `auth_plain'
from /Users/abhasarya/.rvm/rubies/ruby-2.1.0/lib/ruby/2.1.0/net/smtp.rb:731:in `authenticate'...
在我的config/environments/development.rb文件中,我还有以下两行代码:

  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.perform_deliveries = true
我的问题是,每当我启动rails控制台(在开发中工作,不知道如何在生产中运行)时,将用户的电子邮件分配给用户变量,然后输入命令:
MyMailer.welcome\u email(user.deliver)

终端显示:

Rendered my_mailer/welcome_email.html.erb (11.7ms)
  Rendered my_mailer/welcome_email.text.erb (0.5ms)

Sent mail to abhas.arya@yahoo.com (923.1ms)
Date: Fri, 08 Aug 2014 13:54:38 -0400
From: abhas.aryaa@gmail.com
To: abhas.arya@yahoo.com
Message-ID: <53e50ededebb2_2b0b8082dbf8507c5@Abhass-MacBook-Pro.local.mail>
Subject: Welcome!
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_53e50eded7355_2b0b8082dbf85068f";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
呈现my_mailer/welcome_email.html.erb(11.7ms)
呈现my_mailer/welcome_email.text.erb(0.5ms)
向阿布哈斯发送邮件。arya@yahoo.com(923.1ms)
日期:2014年8月8日星期五13:54:38-0400
发信人:阿布哈斯。aryaa@gmail.com
致:阿布哈斯。arya@yahoo.com
消息ID:
主题:欢迎!
Mime版本:1.0
内容类型:多部分/备选;
边界=“-->=”mimepart\u 53E50EDD7355\u 2b0b8082dbf85068f”;
字符集=UTF-8
内容传输编码:7bit

但随后呈现错误。我的观点很简单,我认为我不需要在这里包含它们。我拼命尝试了一切,包括解锁谷歌验证码,但仍然没有任何效果。如果有任何帮助,我将不胜感激,我只想把一封电子邮件发送到适当的收件箱。如果你能解决这个问题,我会永远爱你

您看到此错误的原因是Google已经阻止了您的IP。您需要为此IP启用授权

转到并单击“继续”


然后再次尝试从应用程序发送电子邮件,它应该可以工作。您需要在访问上述链接后10分钟内从应用程序发送电子邮件。通过访问上述链接,谷歌将授予注册新应用10分钟的权限。

我通过以下操作解决了这个问题:

1) 登录谷歌应用程序管理门户,通过在安全首选项下选中“允许用户管理对不太安全的应用程序的访问”,启用不太安全的应用程序

2) 登录将用作邮件发送者的帐户,并打开“允许不太安全的应用”


在线提供的大多数答案都涉及第2步,但如果管理员未打开该功能,则无法在用户级别进行配置。

经过一些调查,这一答案为我解决了问题:

点击


通过使用您在smtp配置中提供的电子邮件地址登录,在此处启用对不太安全的应用程序的访问。

我通过这样做解决了我的问题

config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: myemail@gmail.com,
    password: mypassword,
    authentication: 'plain',
    enable_starttls_auto: true
}

因为如果你在帐户设置中关闭了对不太安全的应用程序的访问,谷歌将试图阻止你登录。因此,请遵循此操作并“打开对不太安全的应用程序的访问。

谢谢,我尝试过,但不幸的是,它仍然不起作用,并显示出完全相同的错误谢谢你,拉杰,我按照错误日志中的链接暂时启用了对不太安全的应用程序的访问,并且成功了!你这个摇滚小子!我认为有必要提及“admin.google.com仅用于google Workspace帐户。常规Gmail帐户不能用于登录admin.google.com”
Rendered my_mailer/welcome_email.html.erb (11.7ms)
  Rendered my_mailer/welcome_email.text.erb (0.5ms)

Sent mail to abhas.arya@yahoo.com (923.1ms)
Date: Fri, 08 Aug 2014 13:54:38 -0400
From: abhas.aryaa@gmail.com
To: abhas.arya@yahoo.com
Message-ID: <53e50ededebb2_2b0b8082dbf8507c5@Abhass-MacBook-Pro.local.mail>
Subject: Welcome!
Mime-Version: 1.0
Content-Type: multipart/alternative;
 boundary="--==_mimepart_53e50eded7355_2b0b8082dbf85068f";
 charset=UTF-8
Content-Transfer-Encoding: 7bit
config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: myemail@gmail.com,
    password: mypassword,
    authentication: 'plain',
    enable_starttls_auto: true
}