แนะวิธีเขียน Code insert...Email ข้อมูลลงฐานข้อมูล แบบ loop ให้หน่อยค่ะ
Code (PHP)
<?PHP
ob_start(); //ส่งข้อมูลไปเก็บไว้ที่ buffer ก่อน เมื่อได้ครบ แล้วค่อยส่งไปทีเดียว...เก็บ HTML ไว้ในตัวแปร PHP
include ("Connections/connect_sqlserver.php");
$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>
<body onload="">
<div id="demo"></div>
<!-- <button onclick="myStopFunction()">Stop time</button> -->
ส่งเมล์อัตโนมัติ ทุกวัน ศุกร์ ในเวลา
<input name="timeseteday" type="text" id="timeseteday" style="width:100px; text-align:right;" value="15:10:00" />
นาฬิกา <br />
<script>
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
//var t2=
//var tt = t + t2;
var duetime = document.getElementById('timeseteday').value;
//document.getElementById('testtimeid').innerHTML = duetime;
document.getElementById("demo").innerHTML='ขณะนี้เวลา : ' + t + ' นาฬิกา';
if(t==duetime){
document.getElementById('testtimeid').innerHTML = "Yes....!";
location.reload();
}
}
function myStopFunction()
{
clearInterval(myVar);
}
///FUNCTION สำหรับโหลดเปิดหน้าเว็บขึ้นมาอีกหน้า///
function window_load(){
window.open('cn.php','_blank'); }
//function window_load(){
// window.open('sale.php','_blank'); }
//----------------------------------//
</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=='Thursday'){
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] ", "คุณเดย์"); //ผู้รับทดสอบ
// $mail->AddAddress("[email protected] ", "คุณบิ๊ก"); // ผู้รับคนที่หนึ่ง
// $mail->AddAddress("[email protected] ", "คุณเบล"); // ผู้รับคนที่สอง
// $mail->AddAddress("[email protected] ", "[email protected] "); //ผู้รับคนที่สาม
// $mail->AddAddress("[email protected] ", "");
// $mail->AddAddress("[email protected] ", "คุณบอส");
// $mail->AddAddress("[email protected] ", "คุณอุ้ม");
// $mail->AddAddress("[email protected] ", "คุณเดย์");
// $mail->AddAddress("[email protected] ", "คุณมุก");
$email= "[email protected] " ;
//$email= "[email protected] " ;
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//แจ้งผลการส่งMAIL
$host="localhost";
$user="root";
$pw="mypassword";
//$pw="littlejust";
$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();
}
if(!$mail->Send()) { #กรณีที่ส่งเมล์ไม่ได้
mysql_query("INSERT INTO logfile_tb VALUES ('$email','$datetime','$datetime','content 1','Error') ") or die(mysql_error());
echo "Mailer Error: " . $mail->ErrorInfo;
} else { #กรณีที่ส่งเมล์ได้
mysql_query("INSERT INTO logfile_tb VALUES ('$email',' $datetime','$datetime','content 1','Finnish') ") or die(mysql_error());
echo "Message sent already!";
}
}else{
echo "Error Defalse Time";
}
?>
</body>
</html>
<script>
setTimeout("testtime1()", 30000);
</script>
ตอนนี้...บันทึกข้อมูลลงฐานข้อมูลได้แล้ว ติดอยู่นิดนึงตรง
ถ้าหากส่งเมล์ตั้งแต่ 2 คนขึ้นไป!!!
ข้อมูลจะบันทึกเมล์ชื่อล่าสุด
เช่น ส่งหา A กับ B
แต่ข้อมูลที่บันทึกลงฐานข้อมูล มีแค่ B ไม่มี A
อยากให้เก็บข้อมูลทั้ง A กับ B ค่ะ
เป็นส่วนของการเก็บ LOG FILE
ช่วยหน่อยนะค่ะ
ขอบคุณค่ะ ^__^Tag : PHP, MySQL
Date :
2014-04-11 15:21:22
By :
itengineer
View :
2119
Reply :
3
เอ้อ ได้สักทีนะ สรุปว่าใช้ mysql เป็นฐานข้อมูล ไม่ใช่ mssql นะ
ส่วนการจะบันทึกข้อมูลลูกค้าหรือสมาชิกที่เราส่งเมล์ไปนั้น ผมมีคำถาม
เมล์ของสมาชิกนั้นคุณเอามาจากไหน จากฐานข้อมูลหรือว่าพิมพ์เข้าไปเอง?
ถ้าจากฐานข้อมูลก็ใช้วน Loop นี่แหละ
Code (PHP)
<?PHP
ob_start(); //ส่งข้อมูลไปเก็บไว้ที่ buffer ก่อน เมื่อได้ครบ แล้วค่อยส่งไปทีเดียว...เก็บ HTML ไว้ในตัวแปร PHP
include ("Connections/connect_sqlserver.php");
$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>
<body onload="">
<div id="demo"></div>
<!-- <button onclick="myStopFunction()">Stop time</button> -->
ส่งเมล์อัตโนมัติ ทุกวัน ศุกร์ ในเวลา
<input name="timeseteday" type="text" id="timeseteday" style="width:100px; text-align:right;" value="15:10:00" />
นาฬิกา <br />
<script>
var myVar=setInterval(function(){myTimer()},1000);
function myTimer()
{
var d=new Date();
var t=d.toLocaleTimeString();
//var t2=
//var tt = t + t2;
var duetime = document.getElementById('timeseteday').value;
//document.getElementById('testtimeid').innerHTML = duetime;
document.getElementById("demo").innerHTML='ขณะนี้เวลา : ' + t + ' นาฬิกา';
if(t==duetime){
document.getElementById('testtimeid').innerHTML = "Yes....!";
location.reload();
}
}
function myStopFunction()
{
clearInterval(myVar);
}
///FUNCTION สำหรับโหลดเปิดหน้าเว็บขึ้นมาอีกหน้า///
function window_load(){
window.open('cn.php','_blank'); }
//function window_load(){
// window.open('sale.php','_blank'); }
//----------------------------------//
</script>
<div id="testtimeid"></div>
<?PHP
$host="localhost";
$user="root";
$pw="mypassword";
//$pw="littlejust";
$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();
}
$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=='Thursday'){
echo "<script> window_load(); </script>"; //เรียกใช้ window_load
#------------คำสั่งดึงค่าจากฐานข้อมูล---------------------------#
$getEmail= mysql_query(" SELECT email FROM email ");
while($resultEmail = mysql_fetch_assoc($getEmail)){
#-----Email ที่ต้องการส่ง-----#
$email= $resultEmail['email'];
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, "คุณ........"); //ผู้รับทดสอบ ซึ่งจะใช้ค่าที่เราได้จากการดึง Email จากคำสั่งด้านบน
// $mail->AddAddress("[email protected] ", "คุณเดย์"); //ผู้รับทดสอบ
// $mail->AddAddress("[email protected] ", "คุณบิ๊ก"); // ผู้รับคนที่หนึ่ง
// $mail->AddAddress("[email protected] ", "คุณเบล"); // ผู้รับคนที่สอง
// $mail->AddAddress("[email protected] ", "[email protected] "); //ผู้รับคนที่สาม
// $mail->AddAddress("[email protected] ", "");
// $mail->AddAddress("[email protected] ", "คุณบอส");
// $mail->AddAddress("[email protected] ", "คุณอุ้ม");
// $mail->AddAddress("[email protected] ", "คุณเดย์");
// $mail->AddAddress("[email protected] ", "คุณมุก");
//$email= "[email protected] " ;
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//$email= "[email protected] ";
//แจ้งผลการส่งMAIL
if(!$mail->Send()) { #กรณีที่ส่งเมล์ไม่ได้
mysql_query("INSERT INTO logfile_tb VALUES ('$email','$datetime','$datetime','content 1','Error') ") or die(mysql_error());
echo "Mailer Error: " . $mail->ErrorInfo;
} else { #กรณีที่ส่งเมล์ได้
mysql_query("INSERT INTO logfile_tb VALUES ('$email',' $datetime','$datetime','content 1','Finnish') ") or die(mysql_error());
echo "Message sent already!";
}
}else{
echo "Error Defalse Time";
}
} #จบคำสั่ง loop while
?>
</body>
</html>
<script>
setTimeout("testtime1()", 30000);
</script>
ประวัติการแก้ไข 2014-04-11 15:50:05
Date :
2014-04-11 15:48:35
By :
arm8957
ยังไม่ได้เลย TwT...ผู้รู้ช่วยสอนหน่อยค่ะ...
Date :
2014-04-14 15:35:27
By :
itengineer
Load balance : Server 03