gpt4 book ai didi

ruby-on-rails - 在 rails3 中制作时事通讯的最佳方式是什么

转载 作者:行者123 更新时间:2023-12-04 03:54:11 25 4
gpt4 key购买 nike

有没有 gem 可以做到这一点,如果没有,最好的方法是什么。我假设我将电子邮件存储在新闻通讯数据库中,并且想要一个可以同时向所有人发送电子邮件的表单。谢谢!

最佳答案

我所知道的没有这方面的 gem 。

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

但是,构建您自己的时事通讯系统与构建常规 MVC 没有什么不同。仅添加邮件程序和邮件程序 View 。

(1) 因此,您创建了处理注册数据(:name、:email、:etc...)的模型和处理时事通讯本身的模型。

(2) 处理它的 Controller (CRUD) + (:send)。发送接收每个收件人,将数据发送到创建电子邮件的邮件程序,然后将其发送。

def send
@newsletter = Newsletter.find(:params['id'])
@recipients = Recipient.all
@recipients.each do |recipient|
Newsletter.newsletter_email(recipient, @newsletter).deliver
end
end

(3) Mailer 构建一封电子邮件,如果您想做类似的事情,则在每封电子邮件中进行一些更改并将其返回给 Controller 操作发送以进行交付。
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,您需要与常规 View 一样的邮件程序 View 。那么在多部分有:
  • newsletter_email.html.erb(或 haml)
  • newsletter_email.txt.erb

    当您想同时发送 html 和纯文本电子邮件时。实例变量在 mailer ofc 中定义。

  • 而且……就是这样。好吧,您可以使用延迟作业来发送它们,因为发送数百封电子邮件可能需要一段时间。几个 ms 乘以 n 可能是很多时间。

    玩得开心。

    关于ruby-on-rails - 在 rails3 中制作时事通讯的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5018341/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com