ruby-on-rails – 在rails3中制作简报的最佳方式是什么

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 在rails3中制作简报的最佳方式是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有宝石可以做到这一点,如果没有,最好的方法是什么.我假设我将电子邮件存储在时事通讯数据库中,并且需要一个可以同时通过电子邮件发送给所有人的表单.谢谢!

解决方法

我所知道的没有宝石.

实际上,由于处理问题,最好的方法是通过提供商的API使用外部批量电子邮件服务提供商.

但是,构建自己的新闻稿系统与构建常规MVC没有什么不同.只有添加邮件邮件的视图.

(1)因此,您创建的模型处理注册数据(:name,:email,:etc …)和处理简报本身的模型.

(2)处理它的控制器(CRUD)(:发送).发送接收每个收件人,将数据发送到邮件程序,然后发送它.

def send
 @newsletter = Newsletter.find(:params['id'])
 @recipients = Recipient.all
 @recipients.each do |recipient|
   Newsletter.newsletter_email(recipient,@newsletter).deliver
 end
end

(3)Mailer构建一个电子邮件,如果你想做类似的事情,在每封电子邮件中做一些更改,并将其返回到控制器动作发送以进行传递.

class Newsletter < ActionMailer::Base
  default :from => "my_email@example.com",:content_type => "multipart/mixed"

  def newsletter_email(recipient,newsletter)
    # these are instance variables for newsletter view
    @newsletter = newsletter
    @recipient = recipient
    mail(:to => recipient.email,:subject => newsletter.subject)
  end
end

(4)Ofc,您需要与常规视图一样的邮件视图.好的多部分有:

> newsletter_email.html.erb(或haml)
> newsletter_email.txt.erb

当您要发送html和纯文本电子邮件时.实例变量在邮件程序中定义.

而且……就是这样.那么你可以使用延迟工作发送它们,因为发送超过几百封电子邮件可能需要一段时间.几个ms时间n可能是很多时间.

玩得开心.

原文链接:https://www.f2er.com/ruby/268329.html

猜你在找的Ruby相关文章