Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > PHP ส่ง Email ส่งถึง 2 ฉบับ ซ้ำกัน...ทั้งที่กดส่งครั้งเดียว



 

PHP ส่ง Email ส่งถึง 2 ฉบับ ซ้ำกัน...ทั้งที่กดส่งครั้งเดียว

 



Topic : 107807



โพสกระทู้ ( 66 )
บทความ ( 0 )



สถานะออฟไลน์




Code (PHP)
<?PHP
ob_start();  //ส่งข้อมูลไปเก็บไว้ที่ buffer ก่อน เมื่อได้ครบ แล้วค่อยส่งไปทีเดียว...เก็บ HTML ไว้ในตัวแปร PHP

$host="localhost";
$user="root";
$pw="mypassword";
$dbname="numchai_db";
	$c=mysql_connect($host,$user,$pw); //เชื่อมตอ
	mysql_select_db($dbname,$c); //เลือกติดต่อกับฐานข้อมูลที่กำหนด
	mysql_query("set names tis620"); //เชื่อมต่อไปเป็นภาษาไทย
 	if(!$c){
		echo"<h3>Can't connect database!</h3>";
		exit();
	}

date_default_timezone_set('Asia/Bangkok');
$datetime = date("y-m-d H:i:s");
$thai_n=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$d=date("d");
$n=$thai_n[date("n")-1];
$y=date("Y")+543;
$t=date("H:i:s");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>


<div id="demo"></div>
<!-- <button onclick="myStopFunction()">Stop time</button> -->
    ส่งเมล์อัตโนมัติ ทุกวัน ศุกร์ ในเวลา 
    <input name="timeseteday" type="text" id="timeseteday" style="width:100px; text-align:right;" value="12:00:00" /> 
    นาฬิกา <br />

<script>
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
var duetime = document.getElementById('timeseteday').value;
document.getElementById("demo").innerHTML='ขณะนี้เวลา : ' + t + ' นาฬิกา';
if(t==duetime){
	document.getElementById('testtimeid').innerHTML = "Yes....!";	
	location.reload();
}
}
function myStopFunction()
{
clearInterval(myVar);
}
	
	
function window_close()
{
window.close();
}

//----------------------------------//

</script>
<div id="testtimeid"></div>
<?PHP

$dayname[] = "'Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'";
$datenow = jddayofweek(cal_to_jd(CAL_GREGORIAN, date("m"),date("d"), date("Y")) , 1 );
echo "Today is : {$datenow} <br>";
if($datenow=='Tuesday'){
	
echo "<script> window_load(); </script>";  //เรียนใช้ window_load */

	
	ob_start(); 
	require("PHPMailer/class.phpmailer.php");
	
	$mail = new PHPMailer();
	
	$mail->IsSendmail(); // telling the class to use SendMail transport
	

	
	$mail->CharSet = "utf-8"; //กำหนดรูปแบบตัวอักษร
	$mail->IsHTML (true); //หากส่งในรูปแบบ html ถ้าส่งเป็น text ก็ลบบรรทัดนี้ออกได้
	$mail->IsSMTP(); //กำหนดว่าเป็น SMTP
$mail->SMTPDebug = 0;
	$mail->SMTPAuth = true; //กำหนดให้มีการตรวจสอบสิทธิ์การใช้งาน
	$mail->Host = "mail.numchai.com"; // ชื่อของเครื่องเซิร์ฟเวอร์ที่ให้บริการส่งอีเมล์ (SMTP mail server) 
	$mail->Port = 25; // พอร์ท 465;  กำหนด port
$mail->Username = "numchai"; // account SMTP "[email protected]";
	$mail->Password = "PEpanel526"; // รหัสผ่าน SMTP
	
	$mail->SetFrom("[email protected]", "puttida"); //ผู้ส่ง
	$mail->AddReplyTo("[email protected]", "puttida"); //ได้เมลล์แล้วตอบกลับถึงใคร
	
	
//Subject...Content	หัวข้อที่ใช้ในการส่ง
	$mail->Subject = "เปรียบเที่ยบยอดขาย 1 มกราคม ถึง $d $n ระหว่างปี 56 กับ 57.  ณ.เวลา $t น."; 
	
	
//หน้าที่จะส่ง MAIL
	require('content1.php');

	$body = ob_get_clean();	 //ได้รับข้อมูลบัฟเฟอร์ปัจจุบันและลบบัฟเฟอร์ส่งออกในปัจจุบัน
	$mail->Body = $body; //ใส่เนื้อหา
$mail->MsgHTML($body);


//EMAIL...
	 $mail->AddAddress("[email protected]", "คุณมุก"); 		//ผู้รับทดสอบ
	 $mail->AddAddress("[email protected]", "คุณมุก"); 



$email = array('[email protected]', '[email protected]');
foreach ($email as $ToEmail){
   



	
//แจ้งผลการส่งMAIL	...	
	if(!$mail->Send()) { #กรณีที่ส่งเมล์ไม่ได้
		if ($datenow=='Tuesday'){mysql_query("INSERT INTO logfile_tb VALUES ('$ToEmail','$datetime','$datetime','Content 1','Error') ") or die(mysql_error());
		echo "Mailer Error: " . $mail->ErrorInfo;
		                                         }
                	             } else { #กรณีที่ส่งเมล์ได้
		mysql_query("INSERT INTO logfile_tb VALUES ('$ToEmail',' $datetime','$datetime','Content 1','Finnish') ") 
                or die(mysql_error());
		echo "Message sent already!";
	                               }
                             }
                             }else { 
	        mysql_query("INSERT INTO logfile_tb VALUES ('$ToEmail',' $datetime','$datetime','Content 1','Error Defalse Time') ") or die(mysql_error());
		echo "Error Defalse Time";
                                     } 

mysql_close($c);
?> 
<body onLoad="timer=setTimeout('window_close()',15000);">
<script>
	setTimeout("testtime1()", 30000);
</script>
</body>
</html>



ค่อยๆแก้โค๊ด แก้ปัญหาไปเรื่อยจนตอนนี้มันมาติดที่
Email ส่งถึง 2 ฉบับ ซ้ำกัน...ทั้งที่กดส่งครั้งเดียว ผิดตรงไหน?? ตามรูปค่ะ
ขอบคุณทุกท่านที่มาตอบ มาให้ความรู้ล่วงหน้านะค่ะ ^__^

mail



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-04-22 14:55:45 By : itengineer View : 2511 Reply : 3
 

 

No. 1



โพสกระทู้ ( 2,311 )
บทความ ( 1 )



สถานะออฟไลน์


ปรับตำแหน่งของ foreach และค่า Email ที่ส่งให้ถูกต้องครับครับ ปัญหาคุณน่าจะ งง กับการทำงานของ foreach หรือไม่ก็หลักการทำงานงาน PHPMailer แก้ตามนี้
Code (PHP)
<?PHP
ob_start();  //ส่งข้อมูลไปเก็บไว้ที่ buffer ก่อน เมื่อได้ครบ แล้วค่อยส่งไปทีเดียว...เก็บ HTML ไว้ในตัวแปร PHP
$host="localhost";
$user="root";
$pw="mypassword";
$dbname="numchai_db";
	$c=mysql_connect($host,$user,$pw); //เชื่อมตอ
	mysql_select_db($dbname,$c); //เลือกติดต่อกับฐานข้อมูลที่กำหนด
	mysql_query("set names tis620"); //เชื่อมต่อไปเป็นภาษาไทย
 	if(!$c){
		echo"<h3>Can't connect database!</h3>";
		exit();
	}

date_default_timezone_set('Asia/Bangkok');
$datetime = date("y-m-d H:i:s");
$thai_n=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
$d=date("d");
$n=$thai_n[date("n")-1];
$y=date("Y")+543;
$t=date("H:i:s");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>


<div id="demo"></div>
<!-- <button onclick="myStopFunction()">Stop time</button> -->
    ส่งเมล์อัตโนมัติ ทุกวัน ศุกร์ ในเวลา 
    <input name="timeseteday" type="text" id="timeseteday" style="width:100px; text-align:right;" value="12:00:00" /> 
    นาฬิกา <br />

<script>
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
var duetime = document.getElementById('timeseteday').value;
document.getElementById("demo").innerHTML='ขณะนี้เวลา : ' + t + ' นาฬิกา';
if(t==duetime){
	document.getElementById('testtimeid').innerHTML = "Yes....!";	
	location.reload();
}
}
function myStopFunction()
{
clearInterval(myVar);
}
	
	
function window_close()
{
window.close();
}

//----------------------------------//

</script>
<div id="testtimeid"></div>
<?PHP

$dayname[] = "'Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'";
$datenow = jddayofweek(cal_to_jd(CAL_GREGORIAN, date("m"),date("d"), date("Y")) , 1 );
echo "Today is : {$datenow} <br>";
if($datenow=='Tuesday'){
	
echo "<script> window_load(); </script>";  //เรียนใช้ window_load */

	
	ob_start(); 
	require("PHPMailer/class.phpmailer.php");
	
	$mail = new PHPMailer();
	
	$mail->IsSendmail(); // telling the class to use SendMail transport
	

	
	$mail->CharSet = "utf-8"; //กำหนดรูปแบบตัวอักษร
	$mail->IsHTML (true); //หากส่งในรูปแบบ html ถ้าส่งเป็น text ก็ลบบรรทัดนี้ออกได้
	$mail->IsSMTP(); //กำหนดว่าเป็น SMTP
$mail->SMTPDebug = 0;
	$mail->SMTPAuth = true; //กำหนดให้มีการตรวจสอบสิทธิ์การใช้งาน
	$mail->Host = "mail.numchai.com"; // ชื่อของเครื่องเซิร์ฟเวอร์ที่ให้บริการส่งอีเมล์ (SMTP mail server) 
	$mail->Port = 25; // พอร์ท 465;  กำหนด port
$mail->Username = "numchai"; // account SMTP "[email protected]";
	$mail->Password = "PEpanel526"; // รหัสผ่าน SMTP
	
	$mail->SetFrom("[email protected]", "puttida"); //ผู้ส่ง
	$mail->AddReplyTo("[email protected]", "puttida"); //ได้เมลล์แล้วตอบกลับถึงใคร
	
	
//Subject...Content	หัวข้อที่ใช้ในการส่ง
	$mail->Subject = "เปรียบเที่ยบยอดขาย 1 มกราคม ถึง $d $n ระหว่างปี 56 กับ 57.  ณ.เวลา $t น."; 
	
	
//หน้าที่จะส่ง MAIL
	require('content1.php');

	$body = ob_get_clean();	 //ได้รับข้อมูลบัฟเฟอร์ปัจจุบันและลบบัฟเฟอร์ส่งออกในปัจจุบัน
	$mail->Body = $body; //ใส่เนื้อหา
	$mail->MsgHTML($body);



	$email = array('[email protected]', '[email protected]');
	foreach ($email as $ToEmail){
   
	//EMAIL...
	$mail->AddAddress($ToEmail, "คุณมุก"); 		//ผู้รับทดสอบ

	
	//แจ้งผลการส่งMAIL	...	
	if(!$mail->Send()) { #กรณีที่ส่งเมล์ไม่ได้
		if ($datenow=='Tuesday'){
			mysql_query("INSERT INTO logfile_tb VALUES ('$ToEmail','$datetime','$datetime','Content 1','Error') ") or die(mysql_error());
			echo "Mailer Error: " . $mail->ErrorInfo;
		}
     } else { #กรณีที่ส่งเมล์ได้
		mysql_query("INSERT INTO logfile_tb VALUES ('$ToEmail',' $datetime','$datetime','Content 1','Finnish') ") or die(mysql_error());
		echo "Message sent already!";
	 }
	} #จบ loop foreach
	
}else { 
	mysql_query("INSERT INTO logfile_tb VALUES ('$ToEmail',' $datetime','$datetime','Content 1','Error Defalse Time') ") or die(mysql_error());
	echo "Error Defalse Time";
} 

mysql_close($c);
?> 
<body onLoad="timer=setTimeout('window_close()',15000);">
<script>
	setTimeout("testtime1()", 30000);
</script>
</body>
</html>









ประวัติการแก้ไข
2014-04-22 15:17:27
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-22 15:14:01 By : arm8957
 


 

No. 2



โพสกระทู้ ( 66 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 1 เขียนโดย : arm8957 เมื่อวันที่ 2014-04-22 15:14:01
รายละเอียดของการตอบ ::
ขอบคุณค่ะ คุณ arm8957 แต่มันก็ยังซ้ำกันอยู่ค่ะ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-22 15:27:55 By : itengineer
 

 

No. 3



โพสกระทู้ ( 1,569 )
บทความ ( 2 )



สถานะออฟไลน์
Twitter Facebook Blogger

ต้องสั่ง clearAddesss ก่อนส่งอันใหม่ครับ (วิธีการดูกระทู้ที่คุณถามอันก่อนหน้าครับ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-04-22 16:12:08 By : itpcc
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : PHP ส่ง Email ส่งถึง 2 ฉบับ ซ้ำกัน...ทั้งที่กดส่งครั้งเดียว
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่