在 php 中安排电子邮件

Posted

技术标签:

【中文标题】在 php 中安排电子邮件【英文标题】:schedule an email in php 【发布时间】:2012-10-05 07:14:13 【问题描述】:

我想安排从 php 脚本发送电子邮件。我希望用户指定日期和时间,然后在指定的日期和时间,我希望自动发送这些电子邮件。我该如何实施?我正在研究 codeigniter。

【问题讨论】:

我在 php 中有电子邮件脚本,但我不知道如何安排它。 @Stony — OP 应该尝试什么?用棍子瞎戳?这不是一个特别复杂的问题,您可以尝试一下然后卡在某个特定位置。问题显然是“你从哪里开始安排?”键入问题。您可能有理由指出获得大部分答案的 Google 查询,但是“您尝试过什么?”没有帮助。 @Quentin:说得好。 @Sahil Jariwala:参考 cron 作业 @Boopa - Cron 作业将使我的服务器繁忙,因为我的数据库将有超过 900000 条记录。我正在寻找守护进程。 他正在使用 Windows。不是 Linux 仅供参考。所以他最好用Windows任务计划程序。 【参考方案1】:

一种方法是创建一个“scheduled_emails”数据库表。将您要排队的所有电子邮件放入其中,包括收件人、主题、消息和可选标题等列。

然后您可以设置一个脚本来查看该表并发送任何“send_time”大于当前时间的电子邮件。然后,您可以设置一个 cron 作业以每隔 5 分钟运行一次此脚本。

【讨论】:

感谢您的回复。我想进一步详细了解如何设置 cron 作业,因为我在 google 搜索中没有得到令人满意的结果 @SahilJariwala — 您在评论我的回答时说 Windows 任务计划。你用的是哪个? Windows 还是 *nix? @Quentin 我正在使用 Windows。我是新手,所以我只是在 Windows 环境中工作时选择了该选项。 如果您使用的是 Windows,那么您不想使用 cron。 正如 Quentin 所说,您目前是在 Windows 中开发这个吗?如果是,那么当它“上线”时,它会在 Linux 服务器上吗?如果是这样,您将需要在实时服务器上使用 cron 作业,在开发时使用 Windows 任务计划程序(尽管我怀疑您的计算机上是否配置了邮件服务器);所以它无论如何都不会发送任何电子邮件。【参考方案2】:

PHP 通常使用外部调度程序来处理这类事情。这意味着 *nix 上的 cron 或 Windows 上的 Windows 任务计划程序。

如果您想通过 Web 界面进行设置,那么您可以考虑将您的日程安排存储在数据库中,并让 cron(等)启动一个脚本,每 5 分钟查找一次过期电子邮件。

【讨论】:

@SahilJariwala — cron 或 Windows 任务计划程序的手册 是的,它的手册。或 Microsoft 支持网站。例如Windows Task Scheduler for XP 该链接对 Windows 任务管理器有很好的解释。但我要找的只是 php 代码。 @SahilJariwala — 您编写发送电子邮件的脚本,然后使用 Task Schedular 每 5 分钟运行一次。 是的,我已经完成了发送电子邮件的脚本。但我没有了解如何在我的 codeigniter 控制器中制作任务计划调用函数,以便它按照计划发送电子邮件

以上是关于在 php 中安排电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 4 中安排 Mandrill 邮件?

如何在 Django 中安排任务?

在托管 Web 服务器中安排作业

我们如何在 1 个代理中安排 5 个具有 5 个用户的报告?

如何在PHP中安排MySQL数据库的定期更新? [重复]

Gmail现在支持安排电子邮件,如何使用gmail rest api工作,还是api支持此功能?