php - 给申请人的提醒邮件

标签 php mysql cron

我有一个申请系统,用户可以保存他们的信息但不能提交。显然,如果他们没有在截止日期前提交所有内容,就需要提醒他们。 我可以做到这一点的基本方法是,如果它已经提交,那么我的数据库中的一个字段可以标记为 1。但是,如果它是 0,我想发送一封电子邮件来提醒他们。

为了让事情变得更复杂,从截止日期前 4 周开始,我想在该周收到一封电子邮件,在截止日期前 3 周收到两封电子邮件,依此类推,直到他们在截止日期前 1 周收到四封电子邮件。 (显然分散在一周内)。

我觉得一周一次可能对我来说已经足够复杂了,因为我还是新手!

研究它看起来好像我需要一个 Cronjob,但如果无论如何都可以避免这种情况(触发器),那就更好了!

最佳答案

Cron 作业起初令人望而生畏,相关过程可能看起来很困难,但可以分解成多个部分。此外,脚本会随着您学习和思考要包含的内容而增长。不知道您的数据库结构,也许大纲可以帮助您入门。

决定运行脚本的频率(每天、每 6 小时等)
许多主机使用cPanel 进行管理。它有一个与 Cron Jobs 一起工作的图标,以及简单或专家设置模式的选择。它也可能有示例设置。您将输入日、月、年、小时和分钟的数字,或输入 *(星号)以包括所有可能的数字。
另一个对初学者来说困难的项目是用来告诉服务器如何处理以及处理什么文件的命令。这需要大量阅读和反复试验。
一个例子:php -q/home/your_account_name/public_html/admin/yourfile_cron.php(开头可能在你的服务器上不同)

在脚本中:
(使用完整路径详细信息以避免以后出现问题,例如上面以:/home 开头...)

  1. 设置一些常量(调试文件、数据库密码文件等)
    使用 fopen 和 fwrite 来记录你不会在屏幕上看到的东西
  2. 首先查询数据库以查找用户名和电子邮件 发送
  3. 处理结果查询及其数据
  4. 建立电子邮件
  5. 发送电子邮件
    根据服务器,选择邮件程序。在某些情况下,mail() 不会发送到本地主机之外。 (PHP Mailer 是一个选项)
  6. 使用文件运行和发送的结果更新数据库

您可以通过在浏览器中访问脚本并包含一些“echo ”来运行脚本进行测试。 cron 作业通常没有(或不需要)屏幕输出。 在测试期间,我使用自己的电子邮件作为静态收件人。

希望这能让您入门。这是一项艰巨的任务,需要数天时间才能完成。不过,当它最终完成您的要求时,您会发现它是有益的!!

关于php - 给申请人的提醒邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132874/

相关文章:

python - 每 5 分钟运行一次 cron 作业

php - 插入数据库失败

javascript - 如何让 PHP 根据设备屏幕尺寸选择一个或另一个 div

php - 如何在另一个sql查询的一段时间内运行一个sql查询?

mysql - 在设计数据库模式时,表的属性如何被其所属组的属性覆盖?

Cronjob cron.daily 不运行 (debian)

php - 如何在 PHP 中获取 : one to many to some to many?

php - 随机字符算法

mysql - 当新客户与回访客户 SQL 中的日期范围发生更改时删除重复项

php - Magento Cron 错误