使用来自 mysql table 的 cron 作业安排电子邮件
Scheduling emails with cron jobs from a mysql table
我正在尝试建立一个系统,用户在该系统中输入一些信息,然后将构建一封电子邮件,将信息保存到 mysql。
我正在尝试弄清楚如何制作它以便发送电子邮件,例如,在用户输入后 20 分钟。 (没有用户停留在浏览器上)。
我需要这种延迟,因为我需要管理员能够登录页面查看电子邮件并可能在发送前对其进行编辑。
这可以通过 cron 作业实现吗?我能否设置一个自动检查 sql table 更新并在一定时间后发送电子邮件的设置?
或者是否可以延迟 php 具有睡眠功能的脚本,然后发送电子邮件。当用户关闭站点并离开时,我可以使 PHP 脚本仍然 运行 吗?
你不能(轻易地)让 PHP 脚本存活那么久。
IMO,你最好的策略是让 PHP 脚本创建电子邮件文件,并通知人员。
然后你可以 PHP 运行 一个 shell 脚本,它使用 "at" 程序来安排任务在 20 分钟内发生。 at 是 cron 的表亲,但更适合这项工作。
计划的任务是获取电子邮件消息,将其移至其他位置(如 "done" 目录),然后通过邮件程序将其传送。提示:/usr/sbin/sendmail -t < myEmailFile
适用于大多数 Linux boxen。
您可以使用mySQL来存储用户发送的数据。稍后将使用另一个由 cron 作业触发的脚本来访问此数据:如果您能够在控制面板中或通过访问服务器设置 cron 作业,请继续,使用 cron 选项卡语法来定义何时触发作业,本网站可以帮助您:
https://crontab-generator.org/
另一种方法是使用外部服务在每个时间间隔触发一个事件,该事件可以通过 HTTP 访问 cron 作业脚本。
如果您希望在 20 分钟后准确发送电子邮件,请在 mysql table 中添加一个字段,指明所需的发送日期(注意时区)。
您可能还想添加一个标志,指示电子邮件是否已发送,这样您就不会发送同一封电子邮件两次。
我正在尝试建立一个系统,用户在该系统中输入一些信息,然后将构建一封电子邮件,将信息保存到 mysql。 我正在尝试弄清楚如何制作它以便发送电子邮件,例如,在用户输入后 20 分钟。 (没有用户停留在浏览器上)。
我需要这种延迟,因为我需要管理员能够登录页面查看电子邮件并可能在发送前对其进行编辑。 这可以通过 cron 作业实现吗?我能否设置一个自动检查 sql table 更新并在一定时间后发送电子邮件的设置?
或者是否可以延迟 php 具有睡眠功能的脚本,然后发送电子邮件。当用户关闭站点并离开时,我可以使 PHP 脚本仍然 运行 吗?
你不能(轻易地)让 PHP 脚本存活那么久。
IMO,你最好的策略是让 PHP 脚本创建电子邮件文件,并通知人员。
然后你可以 PHP 运行 一个 shell 脚本,它使用 "at" 程序来安排任务在 20 分钟内发生。 at 是 cron 的表亲,但更适合这项工作。
计划的任务是获取电子邮件消息,将其移至其他位置(如 "done" 目录),然后通过邮件程序将其传送。提示:/usr/sbin/sendmail -t < myEmailFile
适用于大多数 Linux boxen。
您可以使用mySQL来存储用户发送的数据。稍后将使用另一个由 cron 作业触发的脚本来访问此数据:如果您能够在控制面板中或通过访问服务器设置 cron 作业,请继续,使用 cron 选项卡语法来定义何时触发作业,本网站可以帮助您: https://crontab-generator.org/
另一种方法是使用外部服务在每个时间间隔触发一个事件,该事件可以通过 HTTP 访问 cron 作业脚本。
如果您希望在 20 分钟后准确发送电子邮件,请在 mysql table 中添加一个字段,指明所需的发送日期(注意时区)。 您可能还想添加一个标志,指示电子邮件是否已发送,这样您就不会发送同一封电子邮件两次。