Php Cron作业一次只发送一封电子邮件
我已经为cron作业创建了一个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
<?
$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();功能。