อยากทราบว่า PHP พอจะทำแบบนี้ได้มั้ยครับ โปรดชี้แนะหน่อย
ถ้าเป็น linux จะใช้ โปรแกรม crontab
http://docs.phplist.com/CronJobExamples.html
ส่วนwindow จะใช้ schedule task
https://www.drupal.org/node/31506
ประวัติการแก้ไข 2015-04-10 16:12:00
Date :
2015-04-10 16:10:07
By :
Chaidhanan
แล้วต้องเขียน CODE PHP ยังไงหรอครับ
Date :
2015-04-10 17:31:55
By :
crono001
การใช้งาน Direct Admin : Cronjobs
Date :
2015-04-11 08:17:12
By :
mr.win
ขอบคุณครับ
Date :
2015-04-11 16:06:59
By :
crono001
ตอนนี้สามารถ Auto Send Email ได้แล้วคับ แต่ผมอยากให้มันลูปเช็ค Email ที่มีในวันนั้นๆ ด้วยผมต้องเขียน ลูปยังไงครับ
Code (PHP)
<html>
<head>
<title></title>
</head>
<body>
<?php
$objConnect = mysqli_connect("","","","");
//$_POST["sMemberID"] = "1"; // for Sample
$today = date("y-m-d");
$strSQL = "SELECT * FROM Queue Q INNER JOIN member M ON Q.MemberID=M.MemberID INNER JOIN Timeque T ON Q.QueTime = T.QueTime WHERE Q.QueDate = '".$today."' ";
$objQuery = mysqli_query($objConnect,$strSQL);
$obResult = mysqli_fetch_array($objQuery);
if($obResult)
{
$strTo = $obResult["Email"];
$strSubject = "=?UTF-8?B?".base64_encode("ระบบแจ้งเตือนอัตโนมัติจากทางร้าน ")."?=";
$strHeader .= "MIME-Version: 1.0' . \r\n";
$strHeader .= "Content-type: text/html; charset=utf-8\r\n";
$strHeader .= "From: [email protected] ";
$strEmail = $obResult["TimeType"];
$strVar = "พรุ่งนี้เป็นคิวของคุณ เวลา : ";
$strMessage = "<p>".$strVar."".$strEmail."</p></br>
";
$flgSend = @mail($strTo,$strSubject,$strMessage,$strHeader); // @ = No Show Error //
if($flgSend)
{
echo "Email Sending.";
}
else
{
echo "Email Can Not Send.";
}
}
mysqli_close($objConnect);
?>
</body>
</html>
ประวัติการแก้ไข 2015-04-11 18:39:39
Date :
2015-04-11 17:50:09
By :
crono001
ผมลองเขียนแล้วแต่ตอนมันส่ง email แค่ email เดียวครับ รับกวนช่วยดูหน่อยคับ
Code (PHP)
<?php
$objConnect = mysqli_connect("","","","");
//$_POST["sMemberID"] = "1"; // for Sample
$today = date("y-m-d");
$strSQL = "SELECT * FROM Queue Q INNER JOIN member M ON Q.MemberID=M.MemberID INNER JOIN Timeque T ON Q.QueTime = T.QueTime WHERE Q.QueDate = '".$today."' ";
$objQuery = mysqli_query($objConnect,$strSQL);
$obResult = mysqli_fetch_array($objQuery);
while($obResult = mysqli_fetch_array($objQuery)){
if($obResult)
{
$strTo = $obResult["Email"];
$strSubject = "=?UTF-8?B?".base64_encode("ระบบแจ้งเตือนอัตโนมัติจากทางร้าน")."?=";
$strHeader .= "MIME-Version: 1.0' . \r\n";
$strHeader .= "Content-type: text/html; charset=utf-8\r\n";
$strHeader .= "From: [email protected] ";
$strEmail = $obResult["TimeType"];
$strVar = "พรุ่งนี้เป็นคิวของคุณ เวลา : ";
$strMessage = "<p>".$strVar."".$strEmail."</p>";
$flgSend = @mail($strTo,$strSubject,$strMessage,$strHeader); // @ = No Show Error //
if($flgSend)
{
echo "Email Sending.";
}
else
{
echo "Email Can Not Send.";
}
}
}
mysqli_close($objConnect);
?>
Date :
2015-04-11 20:58:23
By :
crono001
เอาบันทัดที่ 10 ออกครับ มันอยู่นอก ลูป
บันทัดที่ 13, 14 และ 41 เอาออกเหมือนกันครับ ไม่ได้ประโยชน์
เพราะเมื่อผ่าน while มาได้ แสดงว่า มีค่าทุกอันครับ ถ้าไม่มีค่า จะไม่เข้า ลูป จบไปเลย
Date :
2015-04-11 21:09:07
By :
Chaidhanan
ผมลองเอาออกแล้วตามคำแนะนำครับ แต่มันส่งเข้าแค่ 1 Email ครับ
แต่ในวันที่จะส่งนั้นมี 2 เมลครับ
Date :
2015-04-11 21:14:30
By :
crono001
ถ้าแน่ใจว่าแก้ตามที่ผมบอกแล้ว
เอา statement ที่ได้จากคำสั่งนี้ ไปคิวรี่ใน phpmyadmin ครับว่า ได้กี่ record
$strSQL = "SELECT * FROM Queue Q INNER JOIN member M ON Q.MemberID=M.MemberID INNER JOIN Timeque T ON Q.QueTime = T.QueTime WHERE Q.QueDate = '".$today."' ";
Date :
2015-04-12 10:09:27
By :
Chaidhanan
ได้ 2 record ครับ
Date :
2015-04-12 12:15:39
By :
crono001
19 $strHeader .= "MIME-Version: 1.0' . \r\n";
แก้ เป็น
$strHeader = "MIME-Version: 1.0' . \r\n";
ไม่ต้องใส่ จุด ครับ มันต่อ string กลายเป็น หลาย header
Date :
2015-04-12 22:14:18
By :
Chaidhanan
ได้แล้วครับ ขอบคุณ คุณ Chaidhanan มากๆ เลยครับที่คอยให้คำปรึกษาขอบคุณจากใจครับ
Date :
2015-04-13 12:26:43
By :
crono001
Load balance : Server 01