IT虾米网

Ruby 通过 gmail smtp 发送邮件

softidea 2023年12月29日 编程语言 528 0

我正在创建一个 ruby​​ 脚本来检查 url 的响应状态,如果它等于 504,它会向另一个电子邮件地址发送一封邮件。出于某种原因,我得到这个:/usr/lib/ruby/1.9.1/net/smtp.rb:960:in 'check_auth_response': 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbv9z (Net::SMTPAuthenticationError) 我 quadra 检查了身份验证数据,它们是有效的。也许代码中可能有问题:

require 'mail' 
 
options = { :address              => "smtp.gmail.com", 
            :port                 => 587, 
            :user_name            => '<myusername>', 
            :password             => '<mypassword>', 
            :authentication       => 'plain', 
            :enable_starttls_auto => true  } 
 
Mail.defaults do 
  delivery_method :smtp, options 
end 
 
Mail.deliver do 
       to 'dude920228@gmail.com' 
     from 'dude92@dude92.koding.com' 
  subject 'Test' 
     body 'Hurray!!! Test email!' 
end 

哦,还有,我从谷歌收到通知,一个安全性较低的应用程序试图访问我的帐户,因此我设置了安全性较低的应用程序可以使用我的帐户。

请您参考如下方法:

请注意根据@EricDuminil,此答案现已过时

To help keep your account secure, from May 30, 2022, ​​Google no longer supports the use of third-party apps or devices which ask you to sign in to your Google Account using only your username and password. Which apparently means this answer no longer applies. Too bad.. –

如果您使用 2 因素身份验证

转到此链接:

https://www.google.com/settings/security/lesssecureapps

然后选择:

“访问安全性较低的应用程序”

根据:

https://support.google.com/accounts/answer/6010255?hl=en

在这种情况下,您将使用您的普通电子邮件和密码进行连接。

如果您正在使用 2 因素身份验证

您需要为您的应用创建一个应用专用密码。请按照以下步骤操作:

  1. 转到 gmail

  2. 在右上角点击您的个人资料图标并选择“我的帐户”

  3. 点击“登录和安全”

  4. 稍微向下滚动“登录和安全”页面,有一个名为“应用密码”的部分,点击它。

  5. 您应该会看到一个标有“选择应用程序”的下拉菜单。选择邮件。

  6. 对于“在我的设备上”下拉菜单,选择“其他”并输入命令行或任何您想调用该应用程序的内容。

  7. 点击“生成”。将生成一个密码。复制该密码并将您在选项哈希中使用的密码替换为生成的密码:

    options = { :address => "smtp.gmail.com", :港口=> 587, :user_name => '', :password => ' ', :authentication => '普通', :enable_starttls_auto => 真 }

应该是这样的。我刚试过这个,它对我有用。

还要确保您的用户名是您的完整 Gmail 电子邮件地址。

您还可以在此处找到“官方文档”:https://support.google.com/accounts/answer/185833?hl=en


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!