自动发送邮件,不受干扰

时间:2015-07-31 10:31:14

标签: php mysql

在我的项目中,我需要在帐户到期日的2天之前发送电子邮件。日期存储在mysql db中,如何发送。 电子邮件应自动从服务器发送。

<?php
include("config.php");
$select_date=mysql_query("SELECT `date` FROM `app_users` WHERE `user_id`=1");
$fetch_date=mysql_fetch_assoc($select_date);
$date=$fetch_date['date'];
$now = date("Y-m-d"); 
$cur_date=strtotime($now);
$your_date = strtotime($date);
$datediff = $your_date-$cur_date;
$days=floor($datediff/(60*60*24));
$email="nisha.gksh@gmail.com";
$subject="Account Expiry";
$message="Your account expires in 2 days";
$headers = "From: info@datesreminder.com" . "\r\n";
if($days==2)
{
    mail($email,$subject,$message,$headers);
}
?>

1 个答案:

答案 0 :(得分:1)

您需要设置cron job。 cron作业是一种调度程序 - 通常用于类Unix操作系统 - 定期执行命令。

您的PHP代码可能是这样的:

<?php
$expired_users = getExpiringUsers();
foreach($expired_users as $user) {
   sendMail($user);
}

现在您可以通过将其设置为cronjob来设置何时执行此代码。为此,请将条目添加到crontab。您可以输入crontab -e来执行此操作。例如,如果您的文件应该每天凌晨2:30调用,而您的文件位于/usr/local/bin

30 2 * * * /usr/bin/php -f /usr/local/bin/mail_to_expired_users.php &> /dev/null

您可以使用crontab generator轻松完成任务。

如果您使用的是Windows服务器,请检查this