2011-02-16 123 views

回答

12

没有我知道的这个宝石。

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

但是,构建自己的通讯系统与构建常规MVC没有什么不同。只有添加是邮件程序和邮件程序视图。 (1)因此,您创建了处理注册数据(:名称,电子邮件,等等)的模型以及处理新闻稿本身的模型。

(2)处理它的控制器(CRUD)+(:发送)。发送每个收件人,将数据发送到邮件程序创建电子邮件,然后发送它。 (3)邮件生成器建立一封电子邮件,如果你想要做这样的事情并且将它返回给控制器动作发送以进行传送,那么在每封邮件中做一些改变。

class Newsletter < ActionMailer::Base 
    default :from => "[email protected]", :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和纯文本电子邮件。实例变量在c的邮件程序中定义。

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

玩得开心。

+0

找到循环的替代方法: :to => Admin.all.map(&:email).join(“,”) – montrealmike 2011-02-16 18:56:56

0

没有我知道的宝石,并基于@Krule的答案构建,这里是在Rails中设置邮件的截屏视频。

How to create, preview and send email from your rails app

我一直在寻找类似的东西,当我发现这一点。我想通过一些定制,它可以很容易地用来创建新闻邮件。

省钱!花别的地方。

相关问题