首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过Rake或Active Job自动为不同受众批量发送电子邮件

通过Rake或Active Job自动为不同受众批量发送电子邮件
EN

Stack Overflow用户
提问于 2019-01-27 04:04:59
回答 1查看 24关注 0票数 0

我有3套观众(每个观众70人),谁需要个性化的电子邮件发送给他们在特定的时间。每封电子邮件都需要针对特定的受众进行定制:电子邮件的内容类似于:“Hi First_Name”您在受众A中,您将坐在“X排,Y座”等位置。

受众A需要在周四上午10:00发送电子邮件1,在周五下午2:00发送电子邮件2,在周六下午12:00发送电子邮件3

受众B需要在周五上午10:00发送电子邮件1,在周六下午2:00发送电子邮件2,在周日下午12:00发送电子邮件3

受众C需要在周六上午10:00发送电子邮件1,在周日下午2:00发送电子邮件2,在周一下午12:00发送电子邮件3

什么是正确的“Rails-Way”来自动化和批量发送这些电子邮件?某种自定义的rake任务?或者是ActiveJob?或者我可以在网站上创建一个按钮,这样票房工作人员只需点击网站上的一个按钮,它就会自动发送所有这些电子邮件?

我有一个基于鼠标点击的Rails 5应用程序,它可以使用deliver_now和邮件枪向所有观众发送电子邮件。我正在重构应用程序,以更具体地分离受众,并自动发送电子邮件。我对ActiveJob一无所知,而且我是一个rails noobie。

patrons_controller.rb

代码语言:javascript
复制
def audience_segment_A
    Patron.where(audience: A).pluck(:email).batch_send
end

def batch_send
    PatronMailer.send(email_1).deliver_now
    PatronMailer.send(email_2).deliver_later(wait: 26.hours)
    PatronMailer.send(email_3).deliver_later(wait: 22.hours)
end

我的代码没有对每个电子邮件进行个性化处理(也不能正常工作),而且我不确定如何调用/启动这个电子邮件发送过程。

EN

回答 1

Stack Overflow用户

发布于 2019-01-27 05:37:43

我将创建一个单独的表/模型来存储所有电子邮件(可能是Invitation)。添加两个新属性: status (pending/sent)和time_to_sent (Datetime)。然后运行rake脚本,该脚本查询表中仍处于挂起状态且需要发送的所有记录:

代码语言:javascript
复制
Invitation.where(status:pending).where('time_to_send < ?', DateTime.now)

然后把那些邮件都发出去。发送成功后,相应地更新状态。

这可能比创建工作更可靠一些。我认为Jobs应该用在需要马上发生的事情上,但应该是主线的,和/或不是业务关键的。您希望100%确定电子邮件可能收到并发送。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54382240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档