Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Cron作业一次只发送一封电子邮件_Php_Cron - Fatal编程技术网

Php Cron作业一次只发送一封电子邮件

Php Cron作业一次只发送一封电子邮件,php,cron,Php,Cron,我已经为cron作业创建了一个php文件。我想通过这个cron作业向用户发送讲座详细信息。代码如下: <? $login=mysql_query("select * from table1 WHERE member_status = '1' AND email_lecture_sent ='0' "); $datelogin=mysql_fetch_array($login); $current_date=date("Y-m-d H:i:s a"); $objTota

我已经为cron作业创建了一个php文件。我想通过这个cron作业向用户发送讲座详细信息。代码如下:

 <?
 $login=mysql_query("select * from table1 WHERE member_status = '1'  AND email_lecture_sent ='0' "); 
 $datelogin=mysql_fetch_array($login);

 $current_date=date("Y-m-d H:i:s a");   
 $objTotalRS=mysql_query("select * from  table2 where display_time >'".$current_date."' order by lecture_start asc limit 0,1");


  while ($data=mysql_fetch_array($objTotalRS))  {

        $date1= date("Y-m-d");
        $date2=date("Y-m-d",strtotime($data['lecture_start']));

        $dateDiff = strtotime($date2) - strtotime($date1);
        $fullDays = floor($dateDiff/(60*60*24));

          if($datelogin['email_lecture_sent'] = '0'){
    mysql_query(" UPDATE table1 SET email_lecture_sent = '1' WHERE reg_id =".$datelogin['reg_id']);

    }

    if($fullDays=="1" || $fullDays=="2"){
    ob_start(); 
       ?>

         email content containing lecture details along with user's data like username, password etc.. .


 <?
    $body=ob_get_contents();
    ob_end_clean ();

    $to = $datelogin["email"];
    $sub = "Our Next Live Session";



    $mail->IsHTML(true); 
    $mail->Host = "mail.abc.com";
    $mail->From = "info@abc.com"; 
    $mail->FromName = "ABC"; 

    $mail->AddAddress($to);
    $mail->Subject = $sub;
    $mail->Body = $body;
    $mail->WordWrap = 50;
    if($mail->Send()){
    echo"Success...";
    }else{
        echo"oops";
    }


    $mail->ClearAddresses();
    $mail->ClearCCs();
    $mail->ClearBCCs();

        }

     }
         ?>

请删除
ob_start()您代码中的函数。Bcz,如果使用
ob_start()
函数,则表示再次启动所有对象

if($fullDays=="1" || $fullDays=="2"){
ob_start(); ///// Remove this line.
   ?>
     email contents...
   <?
   rest email sending php code....
   }
}
if($fullDays==“1”|$fullDays==“2”){
ob_start();//删除此行。
?>
电子邮件内容。。。

我对上面的代码进行了处理,并重新设计了如下代码,这些代码非常适合我

更新的代码是-

<?php
$log= "select * from table1 WHERE member_status = '1' AND email_lecture_sent='0'";
$login=mysql_query($log);

while ($datelogin=mysql_fetch_array($login))  {

    mysql_query(" UPDATE table1 SET email_lecture_sent = '1' WHERE reg_id =".$datelogin['reg_id']);

    $current_date=date("Y-m-d H:i:s a");
    $objTotalRS=mysql_query("select * from  table2 where display_time >'".$current_date."' order by lecture_start asc limit 0,1");

    $data=mysql_fetch_assoc($objTotalRS);

        $date1= date("Y-m-d");
        $date2=date("Y-m-d",strtotime($data['lecture_start']));
        $dateDiff = strtotime($date2) - strtotime($date1);
        $fullDays = floor($dateDiff/(60*60*24));


         if ($fullDays=="2" || $fullDays=="1") {
          ob_start();
?>  

你的错误日志显示了什么吗?可能是它遇到了致命错误并且出错了不,错误日志中没有显示错误:mysql\u query evil->也许如果你发布“Email sending php code”的其余部分,我们就可以检查是否有错误。其余的“Email sending php code”在上面的问题中更新了只删除ob_start();功能。