解决方法
我所知道的没有宝石.
实际上,由于处理问题,最好的方法是通过提供商的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可能是很多时间.
玩得开心.