如何使用Ruby的邮件gem通过smtp发送电子邮件?

时间:2012-10-14 17:32:22

标签: ruby email smtp

我在Ruby https://github.com/mikel/mail

中使用mail gem

如何通过smtp服务器发送电子邮件?如何指定地址和端口?我应该为Gmail使用哪些设置?

github上的README仅提供本地服务器发送的示例。

1 个答案:

答案 0 :(得分:96)

来自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