【问题标题】:Send mails with PHP regularly at a specific time在特定时间使用 PHP 定期发送邮件
【发布时间】:2013-01-14 17:46:46
【问题描述】:

我有三个mysql表; Users、Tasks 和 Task_Users,每个用户都可以通过我用 PHP 开发的 Web 应用程序来创建他们的任务。

问题是,我希望我的应用程序在任务发生前一天向用户发送一封电子邮件。我首先想到的是做一个 MySQL 工作或触发发送电子邮件,但我不知道如何做 id,

实现这一点的最佳方法是什么,或者我如何通过 PHP 调用工作并每天执行它并验证在任务发生前只剩下一天,然后如果是真的发送电子邮件?

这是我的表定义。提前致谢。

Users
----------
UserId,Names,email,pass

Tasks
------------
TaskId,TaskName,Descripcion,TaskDateTime

Tasks_Users
------------
TaskId,UserID

【问题讨论】:

标签: php mysql triggers cron


【解决方案1】:

您可以为此编写 CRON 作业。

什么是 CRON 作业?

Cron 是使 unix 用户能够执行命令或 在指定的时间/日期自动执行脚本(命令组)。这是 通常用于系统管理命令,如 makewhatis,它构建一个 在数据库中搜索 man -k 命令或运行备份脚本, 但可以用于任何事情。今天它的一个常见用途是连接到 上网并下载您的电子邮件。

你要做什么?

只需编写一个普通的 PHP 脚本。如果它直接从浏览器启动,则可以制作一个。然后将相同的 PHP 文件安排在 cron 中运行,以此为指导:

编写完 CRON 作业后如何运行?

http://www.inmotionhosting.com/support/edu/cpanel/301-run-cron-job

如果您有任何问题,请告诉我。

【讨论】:

  • 在哪里可以获得 CRON 的命令列表?或者每个命令意味着什么?抱歉这个愚蠢的问题,但我不是 Linux 用户。
  • 如果您不熟悉 linux,请查看教程,它将向您展示如何运行 CRON 作业以及此视频。 youtube.com/watch?v=s7ohSPMc8EA, youtube.com/watch?v=oSmKQ8_wGdE
  • wget -nv -O /dev null path/of/the/sendEmail.php 这就是我所做的。谢谢!我已经在我的网络托管 cPanel 中设置了 Cron 作业,但是我如何知道我的 Cron 作业是否正在运行?以及如何保存错误以防它们发生以查看发生了什么错误之王?
  • 您可以检查错误日志,如果 cron 作业正在运行,您应该会收到一封电子邮件。尝试将您的邮件添加到列表中,看看您是否获得了您想要的特定结果。
【解决方案2】:

我会做一个定期运行脚本(比如每 5 分钟一次?)的 cron 作业,该脚本检查需要发送电子邮件的任务。然后脚本脚本发送必要的电子邮件。

*/5 * * * * php /path/to/script.php

将调用 script.php,它每 5 分钟检查和发送电子邮件。

关于 cron 的一些信息在这里: http://www.pantz.org/software/cron/croninfo.html

【讨论】:

    猜你喜欢
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 2011-05-30
    • 2014-08-10
    • 1970-01-01
    相关资源
    最近更新 更多