【问题标题】:Rails: Sending a reminder email if a condition is trueRails:如果条件为真,则发送提醒电子邮件
【发布时间】:2016-01-09 13:26:07
【问题描述】:

我希望向产品的用户发送一封电子邮件,提醒他们在满足特定条件时做某事。

根据我目前的了解,将涉及以下几个方面:

脚本:需要执行的代码(发送邮件),以及检查是否应该发送邮件的条件。

调度:每天执行一次脚本,随时使用 gem 来更轻松地创建 cron 作业。

假设这是真的,我会这样做:

  1. 创建一个包含电子邮件的脚本,包括。是否发送邮件的条件。
  2. 创建一个使用when来执行脚本的cron作业。

这行得通吗?似乎第一步不起作用,因为我怀疑您是否可以在脚本中设置整个电子邮件。

有人可以详细说明创建一个根据条件发送消息的脚本吗?

额外问题:如何使 cron 作业适应不同的时区?一些用户来自欧洲,一些来自美国。理想情况下,每个人都应该在他们的时区同时收到电子邮件。

我试图以一种详尽的方式来写这个问题,以便其他可能遇到相同障碍的该主题的初学者有一个简单的方法来学习。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    我能想到的最直接的方法是每小时运行一个作业来检查您的状况,然后向该用户发送一封电子邮件。您可以随时为此或那个 gem 使用 cron。

    我会在您的 Rails 应用程序中将其设为 rake 任务。 rake 任务的伪代码看起来像这样。

    def remind_user_to_do_something
      users = User.get_users_based_on_condition
      // The above could be a scope defined on your User class.
      // Basically that scope would check 2 things
      // 1. Do I meet the condition you're talking about above.
      // 2. Is it time to send an email to them based on their timezone.
      for each user in users
        MyActionMailerClass.send_email_for_user user
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2018-12-09
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 2014-02-12
      • 1970-01-01
      • 2021-12-14
      相关资源
      最近更新 更多