台灣最大程式設計社群網站
線上人數
1379
 
會員總數:243645
討論主題:188247
歡迎您免費加入會員
討論區列表 >> PHP >> 請教phpmailer的重複寄信
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教phpmailer的重複寄信
價值 : 100 QP  點閱數:158 回應數:8

樓主

code
門外漢
0 5
258 75
發送站內信


各位好

目前有遇到一寄信問題

系統:unbuntu

套件:phpmailer

我有撰寫語法,理論上為抓後天的預約個案的老師與學生並依序寄提醒信

但啟動後,程式只能抓出一個預約個案並寄出,請問是我撰寫有問題還是該套件不能重複寄出

以下是代碼


$time_data=array("09:00-09:50","10:10-11:00","11:10-12:00","12:20-13:10","13:20-14:10","14:20-15:10","15:30-16:20","16:30-17:20","17:30-18:20","18:30-19:20","19:30-20:20");


$check_day=date("Y-m-d",mktime(0,0,0,date("m"),date("d")+1,date("Y")));

$sql="select OT_Auto_Serial ,OT_Teacher,SBD_Serial,OT_Day,OT_Time from `table1` where `OT_Day`='".$check_day."' ";

$day=$check_day;

$MDb->dbquery($sql,1);





for($t1=0;$t1<$MDb->rows_number1;$t1++){

@require("/class.phpmailer.php");

$mail_smtp = " ";

$mail_from = " ";

ini_set('default_charset','utf-8');

$mail = new PHPMailer();

$mail->CharSet="Big5";

//設定信件編碼,大部分郵件工具都支援此編碼方式
$mail->Encoding = "base64";

//使用SMTP寄送信件
$mail->IsSMTP(); // send via SMTP

//指定發送信件的伺服器
$mail->Host = $mail_smtp; // SMTP servers

//將明天要諮商老師email抓取,再放入副本

$message="預約日期".$check_day."<br>";



$OT_Teacher =$MDb->answer1[$t1]->OT_Teacher ;

$OT_Time =$MDb->answer1[$t1]->OT_Time ;

$OT_stu=$MDb->answer1[$t1]->SBD_Serial;

//-teacher

$sql="select a2.`Email`,a2.`User_Name` from `table2` as a1,`table3` as a2 where a1.TD_User_Serial=a2.Auto_serial and a1.TD_Auto_Serial ='$OT_Teacher'";

$MDb->dbquery($sql,2);

$teacher_email=$MDb->answer2[0]->Email;

$teacher_name=$MDb->answer2[0]->User_Name;

//$mail->AddAddress($teacher_email,'teacher');


//-student

$sql="select SBD_ID,SBD_Name from `counsel`.`stu_basic_data` where `SBD_Auto_Serial`='$OT_stu'";

$MDb->dbquery($sql,2);

$stdname=$MDb->answer2[0]->SBD_Name;

//$mail->AddAddress($stdmail,'student');


$message=$message."老師".$teacher_name."<br>";

$message=$message."時間".$time_data[$OT_Time]."<br>";

$message=$message."學生".$stdname."<br><br>";

$mail->AddAddress("counsel@nctu.edu.tw",'teacher');

//指定寄件者的email位址
$mail->From = $teacher_email;

//寄件者的名稱sender's name
$mail->FromName = "counsel";

//設定信件內容為HTML
$mail->IsHTML(true); // send as HTML

//email的主旨
$mail->Subject = $check_day."提醒通知";



//email的本文



$mail->Body = $message;


$mail->AltBody = $message;

//信件內容
$mail->MsgHTML($message);

$attachment="";

//新增附件
if( isset($attachment) && is_array($attachment)){
foreach($attachment as $key => $value){
$mail->AddAttachment($value[0]);
}
}

if(!$mail->Send()){
echo $mail->ErrorInfo;
exit;
}
$mail->ClearAddresses();






}



搜尋相關Tags的文章: [ phpmailer寄信 ] ,
本篇文章發表於2018-12-05 20:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

code
檢舉此回應
資料庫:mysql
本篇文章回覆於2018-12-05 21:24
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

淺水員
檢舉此回應
這為什麼會在迴圈裡面呢?

先把 @ 拿掉看看,應該會有錯誤訊息
require 應該是文件一開始引用一次就好
本篇文章回覆於2018-12-06 00:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

code
檢舉此回應
好的
本篇文章回覆於2018-12-06 08:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
EMAIL寄件除了程式之外,還需要注意mail server的限制問題。如發送太快太頻繁。
某些mail 伺服是會阻擋不給你發信的。

另外,學一下使用程式標簽可以嗎??

本篇文章回覆於2018-12-06 09:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

code
檢舉此回應
請問版主 標籤是指 程式排列方式嗎

如果是這樣,以後我會注意

謝謝版主
本篇文章回覆於2018-12-06 09:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

code
檢舉此回應
版主 我知道

回覆地方有相關程式標籤

我下次會用

謝謝
本篇文章回覆於2018-12-06 10:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

code
檢舉此回應
各位好


我參考國外相關用法

https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps

增加下列語法:



剛測試,phpmailer可以把預約日期所有信件寄出

我已將該檔案用crontab建立排程,接下來觀察排程是否可以work
本篇文章回覆於2018-12-07 13:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

code
檢舉此回應
各位好

個別信件可以寄出

phpmailer重複寄個別信件

注意下列參數


1.


2.

本篇文章回覆於2018-12-10 09:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.