发送电子邮件与“交付”和没有“交付”之间的区别是什么?

时间:2015-05-13 20:21:27

标签: ruby-on-rails ruby

以下两种电子邮件调用方法之间的区别是什么?一个是交付,而另一个没有。

mail(:to => 'test@gmail.com', :subject => "Test") do |format|
    format.html { render layout: false }
end.deliver

mail(:to => 'test@gmail.com', :subject => "Test") do |format|
    format.html { render layout: false }
end

2 个答案:

答案 0 :(得分:2)

.deliver实际发送消息,阻止没有.deliver只创建邮件对象但不发送它。 .deliver是用于发送.deliver_later电子邮件或自定义创建的投放方式的操作(例如:您使用不带.deliver的方法生成邮件,然后您的cron_job稍后发送此电子邮件。)

您可以在此处找到更多信息: http://guides.rubyonrails.org/action_mailer_basics.html#walkthrough-to-generating-a-mailer

使用电子邮件的好例子: http://railscasts.com/episodes/61-sending-email-revised?view=asciicast

答案 1 :(得分:1)

据我所知...只有平面mail功能会发送电子邮件。如果您构建了一个Mail::Message对象,则需要在其上调用.deliver以使其发送,但mail函数似乎会为您执行此操作。

(至少,据我所知。我还没有测试过,所以我不确定)