有没有宝石可以做到这一点,如果没有,最好的方法是什么。我假设我将电子邮件存储在时事通讯数据库中,并且需要一个可以同时通过电子邮件发送给所有人的表单。谢谢!
答案 0 :(得分: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
(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.txt.erb
如果您只想发送html和纯文本电子邮件。实例变量在mailer ofc中定义。
而且......就是这样。那么你可以使用延迟工作发送它们,因为发送超过几百封电子邮件可能需要一段时间。几个ms时间n可能需要很长时间。
玩得开心。
答案 1 :(得分:3)
请检查maktoub gem上面有blog post。
答案 2 :(得分:0)
我也不知道宝石,并以@Krule的答案为基础,这里是在Rails中设置邮件的截屏视频。
How to create, preview and send email from your rails app
当我发现这个时,我正在寻找类似的东西。我认为通过一些自定义,它也可以轻松地用于创建新闻通讯电子邮件。省钱!花在其他地方。