加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 04:17:31 所属栏目:百科 来源:网络整理
导读:有没有宝石可以做到这一点,如果没有,最好的方法是什么.我假设我将电子邮件存储在时事通讯数据库中,并且需要一个可以同时通过电子邮件发送给所有人的表单.谢谢! 解决方法 我所知道的没有宝石. 实际上,由于处理问题,最好的方法是通过提供商的API使用外部批量
有没有宝石可以做到这一点,如果没有,最好的方法是什么.我假设我将电子邮件存储在时事通讯数据库中,并且需要一个可以同时通过电子邮件发送给所有人的表单.谢谢!

解决方法

我所知道的没有宝石.

实际上,由于处理问题,最好的方法是通过提供商的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可能是很多时间.

玩得开心.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读