如何使用mysql和php在指定的日期和时间发送邮件
我拥有的是,如何使用mysql和php在指定的日期和时间发送邮件,php,mysql,email,automation,Php,Mysql,Email,Automation,我拥有的是, 用户在数据库中指定的日期和时间 用于发送邮件的php脚本 必需的 当指定的日期和时间到达时触发php脚本 我正在使用本地apache服务器 示例:A希望在5天内将邮件发送给B。A在数据库中输入日期和时间,5天后它将通过运行php mailer脚本自动发送 有没有办法安排这项工作?编写一个函数,从DB获取执行日期的发送方和接收方列表 ex: check php date is equal to DB date to sent the email. Add the php scrip
有没有办法安排这项工作?编写一个函数,从DB获取执行日期的发送方和接收方列表
ex: check php date is equal to DB date to sent the email.
Add the php script to a cron job
检查示例代码
$queryToGetuserListToSendEmail = "select * from userlist where date_toSend_email = ''". date("Y-m-d H:i:s")."'";
$userListToSendEmail = array();//senders relievers and other details taken from DB to send emails
foreach ($userListToSendEmail as $usersToSendEmail){
//sendEmail
}
用于每天凌晨2:30运行作业的Cron作业(将其添加到Cron选项卡中)
您可以使用脚本在数据库中按日期立即检查差异日期,时间间隔为1分钟或1秒,或者每次运行脚本检查。例如,通过php:
public static function diff_time($date, $timezone = null,$now=null)
{
if($now == null)
{
$now = date_create(date('Y-m-d H:i:s'));
$now = new \DateTime(date('Y-m-d H:i:s'));
$time_now = time();
}
if(is_int($date)){
$time = $date;
$date = date('Y-m-d H:i:s',$date);
}
else{
$time = strtotime($date);
}
$date=new \DateTime($date);
$diff=$date->diff($now);
return $diff`;}
如果发送邮件的时间接近或为零,则可以使用check diff time。
现在您可以添加
crontab -e
加
在示例中,每次运行“检查并发送邮件”创建一个cron作业并安排它。在db中输入日期和时间时,还要添加发送日期和时间,以便在cron中指定在发送日期和时间运行cron并发送电子邮件的条件。您能否提供一个示例代码,通过从db中提取日期将php脚本添加到cron作业中
crontab -e
` * * * * * php ~/script.php`