如何在PHP中安排电子邮件发送活动?

时间:2019-02-28 08:25:19

标签: php email cron

我正在使用php发送电子邮件广告系列的平台。 我只是一个问题,我该如何设置php邮件发件人功能,以每小时由用户定义一次。 我当时正在考虑使用Cron作业,但这似乎很难编写发送url请求的Cron作业(因为我需要电子邮件参数,所以我不能只执行php脚本)。 希望您能帮助我找到该问题的解决方案。 谢谢您的回答!

1 个答案:

答案 0 :(得分:1)

  1. 做功课。您应该研究cron和PHP
  

How to create cron job using PHP?

     

https://www.a2hosting.com/kb/developer-corner/php/run-php-scripts-from-cron-jobs

     

https://packagist.org/packages/peppeocchi/php-cron-scheduler

  1. 您将不得不将日程表保存在数据库中,以便您可以编辑,删除和重新安排日程表,以防cron表丢失。

  2. 由于PHP在服务器运行后退出,因此您可以使用系统的cron表在计划的时间运行Sender脚本。为此,您有2个选项:

选项1

如果您的服务器在本地主机上运行 :9091

在cron作业中保留数据库中的日程表ID,因此您的发件人脚本可以从数据库中获取设置以发送电子邮件。

# replace * * * * * with the schedule from the user
* * * * * curl localhost:9091/sendEmail?id=123

您也可以直接放置信息,但是如果不保存在数据库中,那么如果丢失cron表,则会丢失计划,因此最好将其保存。

# replace * * * * * with the schedule from the user
* * * * * curl localhost:9091/sendEmail?addr=name@email.com&subscription=pets,house,food

选项2

如果您不希望有太多的用户/计划,则可以在用户每次请求时创建cron作业,然后调用Sender脚本,此脚本将从数据库(SELECT查询)中获取所有计划并发送电子邮件给它。

# Every hour for example
0 * * * * php path/to/script.php