首页 > 解决方案 > 如何在 PHP 中安排电子邮件活动?

问题描述

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

标签: phpemailcron

解决方案


  1. 做你的作业。你应该研究 cron 和 PHP

如何使用 PHP 创建 cron 作业?

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

如果您的服务器在 localhost :9091 上运行

将数据库中的计划 ID 保存在 cron 作业中,以便您的 Sender 脚本可以从数据库中获取设置以发送电子邮件。

# 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

推荐阅读