mon*_*ike 7 ruby-on-rails ruby-on-rails-3
有没有宝石可以做到这一点,如果没有,最好的方法是什么.我假设我将电子邮件存储在时事通讯数据库中,并且需要一个可以同时通过电子邮件发送给所有人的表单.谢谢!
Kru*_*ule 12
我所知道的没有宝石.
实际上,由于处理问题,最好的方法是通过提供商的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
Run Code Online (Sandbox Code Playgroud)
(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
Run Code Online (Sandbox Code Playgroud)
(4)Ofc,您需要与常规视图一样的邮件视图.好的多部分有:
newsletter_email.txt.erb
当您要发送html和纯文本电子邮件时.实例变量在邮件程序中定义.
而且......就是这样.那么你可以使用延迟工作发送它们,因为发送超过几百封电子邮件可能需要一段时间.几个ms时间n可能是很多时间.
玩得开心.
| 归档时间: |
|
| 查看次数: |
4261 次 |
| 最近记录: |