ruby-on-rails - 在 Rails 应用程序中发送自动电子邮件

标签 ruby-on-rails email cron

在我的 rails 应用程序中,用户可以订阅一些事件。我想在事件开始前 24 小时向用户发送邮件。

我不确定如何实现。一个 rake 任务?是否有一些 gem 或一些最佳实践可以遵循?

谢谢!

编辑:

我想我的 cron 必须每分钟运行一次才能获得 24 小时内开始的每个事件。但是如果 cron 停止,或者需要超过一分钟的时间,我不能跳过一些电子邮件。换句话说,我如何确定我没有发送两次相同的电子邮件?

最佳答案

查看:

http://railscasts.com/episodes/206-action-mailer-in-rails-3

用于发送邮件和

http://railscasts.com/episodes/164-cron-in-ruby-revised

用于使用when设置一个cron来调用你的邮件程序

编辑:刚看到你的评论。在这种情况下,我会考虑使用类似 resque-scheduler 或与 sidekiq 等效的东西:

https://github.com/bvandenbos/resque-scheduler

那么你可以做这样的事情:

Resque.enqueue_at(24.hours.from_now, SendFollowUpEmail, :user_id => current_user.id)

sidekiq 示例:
FollowUpEmailer.perform_in(24.hours.from_now, current_user.id)

关于ruby-on-rails - 在 Rails 应用程序中发送自动电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967620/

相关文章:

email - Laravel 5.4 重置密码时删除邮件字段

c# - 无法从 ASP.NET 网页发送邮件

php - Cron Job - 为什么我的 php 脚本不仅选择一天(因为我希望它工作),即从现在开始 7 天,但它选择

ruby-on-rails - 如何禁用 Rails 4 中的部分更新?

javascript - 使用 coffeescript 延迟(反跳)ajax 请求

ruby-on-rails - rake 数据库 :fixtures:load on factory_girl

iphone - 结合 UIAlertViewStyleLoginAndPasswordInput 与 UIKeyboardTypeEmailAddress

ruby-on-rails - 如何模拟 cucumber / capybara 中的 IP 地址?

mysql - crontab 执行在 bash 脚本中导出 xlsx 文件的 mysql 查询时出错

amazon-web-services - Crontab没有凭证