Ruby通过gmail smtp发送邮件

时间:2015-11-25 13:59:49

标签: ruby email

我创建了一个检查网址响应状态的ruby脚本,如果它等于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

哦,我收到谷歌的通知,一个不太安全的应用程序试图访问我的帐户,所以我设置不太安全的应用程序可以使用我的帐户。

1 个答案:

答案 0 :(得分:18)

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

转到此链接:

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

选择:

&#34;访问安全性较低的应用&#34;

按照:

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

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

如果 使用2个身份验证

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

  1. 转到gmail
  2. 点击右上角的个人资料图标,然后选择“我的帐户”
  3. 点击&#39;登录&amp;安全&#39;
  4. 向下滚动&#39;登录&amp;安全&#39;页面稍微有一个名为&#39;应用程序密码&#39;点击它。
  5. 您应该会看到标有&#39;选择应用的下拉列表。选择邮件。
  6. 对于我的设备上的&#39;下拉菜单选择&#39;其他&#39;并输入命令行或您想要调用该应用程序的任何内容。
  7. 点击&#39;生成&#39;。将生成密码。复制该密码并使用生成的密码替换您在选项哈希中使用的密码:

    options = {:address =&gt; &#34; smtp.gmail.com&#34 ;,             :port =&gt; 587,             :user_name =&gt; &#39;&#39 ;,             :password =&gt; &#39;&#39 ;,             :authentication =&gt; &#39;滑动&#39 ;,             :enable_starttls_auto =&gt; true}

  8. 那应该是它。我刚试过这个,它对我有用。

    另外,请确保您的用户名是完整的Gmail电子邮件地址。

    您还可以找到官方文档&#39;在这里:https://support.google.com/accounts/answer/185833?hl=en