我正在使用php发送电子邮件广告系列的平台。 我只是一个问题,我该如何设置php邮件发件人功能,以每小时由用户定义一次。 我当时正在考虑使用Cron作业,但这似乎很难编写发送url请求的Cron作业(因为我需要电子邮件参数,所以我不能只执行php脚本)。 希望您能帮助我找到该问题的解决方案。 谢谢您的回答!
答案 0 :(得分:1)
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
您将不得不将日程表保存在数据库中,以便您可以编辑,删除和重新安排日程表,以防cron表丢失。
由于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