PHP-发送一封延迟为x的电子邮件

时间:2018-09-10 08:15:36

标签: javascript php email

我需要在x时间之后使用php代码发送和发送电子邮件。

我不想使用cronjob。因此,此代码无法正常工作,因为它可以一次打印php代码,并且不会像js那样自动更改DOM。但是我需要这样的东西:

  $today = date('Y-m-d H:i:s');
  $dataorder = date("Y-m-d H:i:s", $order->created);
  $delay_days = 240;
  $senday = date('Y-m-d H:i:s', strtotime( "$dataorder + $delay_days min" ));

   if ($today == $senday) {

    echo "sent";

   } else {

    echo "not yet sent";

   }

现在,我可以使用js,但是我不确定这是否行得通,这个php脚本是后端的全部php页面。所以,我只能使用php吗?喜欢使用睡眠功能吗?或其他

我不知道这是最好的方法。

(特别是这是一种发送电子邮件以记住要在网站上留下赞美的系统。)

谢谢

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式实现此目标

  1. 有了用户的数据,就知道特定用户在哪个日期注册。

  2. 编写一个每天执行的脚本,并选择5天前所有已注册用户的脚本。邮件将被发送到该日期匹配的所有用户。

  3. 脚本将继续执行,直到在该日期处理完最后一个用户为止。

答案 1 :(得分:0)

您可以将每封电子邮件存储在数据库表或临时文件中,此时用户操作将发送待处理的电子邮件。例如,您可以每10秒发出一个ajax请求,该请求将发送邮件以防止页面缓慢加载。

更好的解决方案是,如果您对这样的工作使用cronjob。