如何使用 Ruby 的邮件 gem 通过 smtp 发送电子邮件?
Posted
技术标签:
【中文标题】如何使用 Ruby 的邮件 gem 通过 smtp 发送电子邮件?【英文标题】:How to send email via smtp with Ruby's mail gem? 【发布时间】:2012-10-04 18:47:14 【问题描述】:我正在为 Ruby 使用 mail
gem https://github.com/mikel/mail
如何通过 smtp 服务器发送电子邮件?如何指定地址和端口?我应该为 Gmail 使用哪些设置?
github上的README
只给出了本地服务器发送的例子。
【问题讨论】:
【参考方案1】:来自http://lindsaar.net/2010/3/15/how_to_use_mail_and_actionmailer_3_with_gmail_smtp
要通过 GMail 发送,您需要将 Mail::SMTP
类配置为具有正确的值,因此要尝试此操作,请打开 IRB 并输入以下内容:
require 'mail'
options = :address => "smtp.gmail.com",
:port => 587,
:domain => 'your.host.name',
:user_name => '<username>',
:password => '<password>',
:authentication => 'plain',
:enable_starttls_auto => true
Mail.defaults do
delivery_method :smtp, options
end
最后一个块调用Mail.defaults
,它允许我们为从现在开始创建的所有邮件对象设置全局传递方法。高级用户提示,您不必使用全局方法,您可以直接在任何单独的 Mail::Message
对象上定义 delivery_method 并且每封电子邮件有不同的交付代理,如果您正在构建具有多个用户的应用程序,这很有用不同的服务器处理他们的电子邮件。
Mail.deliver do
to 'mikel@test.lindsaar.net'
from 'ada@test.lindsaar.net'
subject 'testing sendmail'
body 'testing sendmail'
end
【讨论】:
我收到以下错误:/usr/local/rvm/rubies/ruby-1.9.3-p327/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=AKgnsbvUX (Net::SMTPAuthenticationError)
- 我三次检查了我的连接数据,一切正常。
@kitsched 检查您的 gmail 帐户中的安全设置。 Gmail 正在阻止可疑活动。您需要转到设置并确认您知道该活动
@w_g 谢谢,在此期间我想通了。下次登录时,它提示我确认“可疑”活动。
这在开发中对我不起作用,必须启用此设置google.com/settings/security/lesssecureapps以上是关于如何使用 Ruby 的邮件 gem 通过 smtp 发送电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Actionmailer/Ruby on Rails 发送具有多个动态 smtp 的电子邮件
使用 ruby 邮件 gem 获取电子邮件正文而不获取附件
Ruby Net::SMTP - 使用密件抄送发送电子邮件:收件人
在 Rails 开发环境 smtp cpanel 上发送电子邮件 ruby