sent_mail.php 启动程序
stop_mail.php 停止程序
mail_log.txt 程序日志,邮件发送记录
status.txt 储存状态,是否发送
sent_mail.php
<?php
header("Content-type: text/html; charset=utf-8");
function setEmail(){
//链接数据库
$fp=@fopen("mail_log.txt","a+");//打开邮件发送记录log文件
$status = mail($to,$subject,$message,$headers);
if ($status) {
$numb_1++;
fwrite($fp,date("Y-m-d H:i:s")." Success !
");//邮件发送成功记录
}else{
$numb_0++;
fwrite($fp,date("Y-m-d H:i:s")." Error!
");//邮件发送失败记录
}
}
fclose($fp);//关闭邮件发送记录log文件
//关闭数据库
return array($numb_0,$numb_1);
}
file_put_contents("status.txt","yes");
$status=file_get_contents("status.txt");
if(!$status==""){
ignore_user_abort();//无视关闭浏览器
set_time_limit(0);//程序永久执行,除非停止服务器
$i=1;
do{
$status=="";
$status=trim(file_get_contents("status.txt"));
if($status=="yes"){
try{
if(($numb=setEmail())==false){
$logstr="The program has been executed ".$i." times --> no email sent
---------------------------------------------------
";
}else{
$logstr="The program has been executed ".$i." times --> Number of email sent: succeed(".$numb[1]."), fail(".$numb[0].")
---------------------------------------------------
";
}
}catch(Exception $e){
$logstr="The program has been executed ".$i." times --> Send email program error:".'Message: ' .$e->getMessage()."
---------------------------------------------------
";
}
$fp=@fopen("mail_log.txt","a+");
fwrite($fp,$logstr);
fclose($fp);
$i++;
}
for ($j = 0; $j < 24; $j++) {
if(trim(file_get_contents("status.txt"))=="yes"){
sleep(60*60);
}else{
$fp=@fopen("mail_log.txt","a+");
fwrite($fp,date("Y-m-d H:i:s")."The program has been stopped!");
fclose($fp);
die("Timing tasks has been closed!");
}
}
}while(true);
}else{
die("Read status.txt file error, the program shut down!");
}
}
die();
stop.php
file_put_contents("status.txt","no");