我想为我的网络应用程序创建一个功能,一旦用户进入我的数据库,每隔4周就会向他们发送一封电子邮件,提醒他们,例如,提供一些反馈。我听说过cron的工作是我正在寻找的,但我好奇还有什么在那里,是否有一个PHP脚本存在或一个简单的方法来做到这一点?
一旦他们进入数据库开始倒计时直到4周过去然后调用一个php文件或者发送我选择的电子邮件的东西,我想要倒计时之类的东西。如果可以,请告诉我!谢谢
答案 0 :(得分:4)
我会说要使用一个cron作业(它可以在某个时间每天运行,发送一封电子邮件会很好),而cron作业可以调用一个php脚本来查看所有用户,并检查他们何时发送注册,看看是否有人在4周前注册(或其中的一些)。对于满足此条件的任何人,您可以通过循环并使用mail()函数向他们发送电子邮件。
Cron Job
登录服务器上的shell并键入“sudo crontab -e”并输入以下内容:
30 14 * * * php path/to/some/phpscript.php
在这个例子中,phpscript.php将在每天14:30(下午2:30)运行。但这并不意味着它每天都会向所有用户发送电子邮件!请参阅下面的脚本。
PHP脚本
<?php
# get all users (or your query could choose only users who signed up (4 weeks)*n ago)
$result = mysql_query('SELECT * FROM user');
$users = array();
while($row = mysql_fetch_assoc($result)) $users[] = $row;
# loop through users and (if you didn't already check) see which ones have signed up (4 weeks)*n ago
foreach ($users as $user) {
# take the number of seconds and convert it to number of days
$today = (int)(strtotime(date('c')) / 60 / 60 / 24);
$signup_day = (int)(strtotime($user['signup_date']) / 60 / 60 / 24);
# check if the amount of days since signup is a multiple of 28 (4*7)
if (($today - $signup_day) && ($today - $signup_day) % 28 == 0) {
send_mail_to($user);
}
}
?>