gpt4 book ai didi

ruby-on-rails - 创建滴灌电子邮件事件 Rails

转载 作者:行者123 更新时间:2023-12-04 06:11:34 26 4
gpt4 key购买 nike

我有一个 Rails 应用程序,我正在尝试为其创建一个点滴电子邮件事件。基本上我的想象是,在有人注册后,我会在注册后 2 天向他们发送一封特定的电子邮件,在注册后一周再发送一封,在注册后一个月再发送一封。

执行此操作的最佳方法是什么?是否有一个 gem 可以让它变得简单,或者一些第三方电子邮件提供商做得很好?我已经使用 SendGrid 发送电子邮件并查看他们的 API,但我没有找到任何可以做到这一点的东西。感谢您的帮助!

最佳答案

我在 Rails 中运行滴灌电子邮件事件的设置是存储每个用户的 drip_stage 以及他们何时 last_emailed_at。然后我使用 heroku 调度程序每十分钟安排一次 rake 任务。 rake 任务看起来是这样的:

task :send_drip_email => :environment do 
users = User.where(:last_emailed_at => Time.at(0)..Time.now)
users.find_each do |u|
UserMailer.send_drip(u, :stage => u.drip_stage)
u.update_attributes(:last_emailed_at => Time.now, :drip_stage => u.drip_stage + 1)
end
end

通过这种方式,它可以平均分配给所有用户的电子邮件,而不是一次分配给所有用户。

查找有关 heroku 调度程序的更多信息 https://devcenter.heroku.com/articles/scheduler

我使用的另一个很酷的技巧是将电子邮件存储在数据库中。我制作了一个名为 Email 的模型,其中包含 subject、body 和 drip_stage。然后我实际呈现内联电子邮件,以便我可以访问变量。

请注意,这是非常不安全的,因为正在评估数据库代码。您永远不应该让您的电子邮件创建界面向公众开放

呈现电子邮件所需要做的就是

= render :inline => @email.body, :type => :haml

关于ruby-on-rails - 创建滴灌电子邮件事件 Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9317666/

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