อยากทราบว่าทำไม Email ที่เราเขียนส่ง ถึงมี 2 ฉบับใน inbox
อธิบายนะค่ะ คือว่าได้ทำการเขียน Code ส่ง Email ค่ะ แต่ว่า สงสัยว่า ทำไม กดส่งแล้ว มันเข้าไปอยู่ใน inbox ปลายทาง เป็นจำนวน 2 ฉบับ เลยอ่ะค่ะ หรือ มันทำงานส่งไป 2 ครั้ง เนื่องจาก การ ใช้ $re = mysql_fetch_array($q); ตรงนี้หรือป่าวค่ะ ขอบคุณค่ะ
<?
require_once("PHPMailer_v5.1/class.phpmailer.php");
require_once('includes/functions.inc.php');
$conn = new connection;
$query = new Query();
$conn->fncConnect();
$conn->fncSelectDB();
$mail = new PHPMailer(true);
if($_POST['uname'] != '' and $_POST['ename'] != '')
{
$sql = "select C_Username,C_Email,C_Password,C_Name from tb_customer where C_Username='$_POST[uname]' AND C_Email='$_POST[ename]'";
$q = mysql_query($sql);
$re = mysql_fetch_array($q);
$mail->IsSMTP(); // telling the class to use SMTP
//$mail->Timeout = 10;
$mail->Encoding = "quoted-printable";
$mail->CharSet = "utf-8";
// send mail by gmail
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "admin@gmail.com"; // GMAIL username
$mail->Password = "****"; // GMAIL password
//$mail->AddReplyTo($mailform, $mailform);
$mail->AddAddress($_POST['ename'], $re['C_Username']);
$mail->SetFrom("admin@gmail.com", "no-reply_admin@tms.com");
$mail->Subject = "Your Forgot Password";
//$mail->Body .= "คุณทำการร้องขอ ลืมรหัสผ่าน ข้อมูลของคุณ มีดังนี้";
// $mail->Body .= "Username: ".$_POST['uname'];
// $mail->Body .= " Password: ".$re['C_Password'];
$msg = "<p>คุณทำการร้องขอ ลืมรหัสผ่าน ข้อมูลของคุณ มีดังนี้</p><br><p>Username: ".$_POST['uname']."</p><br><p>Password: ".$re['C_Password']."</p>";
$mail->MsgHTML($msg);
$mail->Send();
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else { echo "โปรดตรวจสอบรหัสผ่านที่บัญชีอีเมล์คุณอีกครั้ง!"; }
}
else
{
echo "โปรดตรวจสอบข้อมูลให้ถูกต้อง";
}
?>
<?
require_once("PHPMailer_v5.1/class.phpmailer.php");
require_once('includes/functions.inc.php');
$conn = new connection;
$query = new Query();
$conn->fncConnect();
$conn->fncSelectDB();
$mail = new PHPMailer(true);
if($_POST['uname'] != '' and $_POST['ename'] != '')
{
$sql = "select C_Username,C_Email,C_Password,C_Name from tb_customer where C_Username='$_POST[uname]' AND C_Email='$_POST[ename]'";
$q = mysql_query($sql);
$re = mysql_fetch_array($q);
$mail->IsSMTP(); // telling the class to use SMTP
//$mail->Timeout = 10;
$mail->Encoding = "quoted-printable";
$mail->CharSet = "utf-8";
// send mail by gmail
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server
$mail->Username = "admin@gmail.com"; // GMAIL username
$mail->Password = "****"; // GMAIL password
//$mail->AddReplyTo($mailform, $mailform);
$mail->AddAddress($_POST['ename'], $re['C_Username']);
$mail->SetFrom("admin@gmail.com", "no-reply_admin@tms.com");
$mail->Subject = "Your Forgot Password";
//$mail->Body .= "คุณทำการร้องขอ ลืมรหัสผ่าน ข้อมูลของคุณ มีดังนี้";
// $mail->Body .= "Username: ".$_POST['uname'];
// $mail->Body .= " Password: ".$re['C_Password'];
$msg = "<p>คุณทำการร้องขอ ลืมรหัสผ่าน ข้อมูลของคุณ มีดังนี้</p><br><p>Username: ".$_POST['uname']."</p><br><p>Password: ".$re['C_Password']."</p>";
$mail->MsgHTML($msg);
$mail->Send();
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else { echo "โปรดตรวจสอบรหัสผ่านที่บัญชีอีเมล์คุณอีกครั้ง!"; }
}
else
{
echo "โปรดตรวจสอบข้อมูลให้ถูกต้อง";
}
?>
คำตอบนี้ง่ายมากครับ เนื่องจากมี การส่ง 2 ครั้งครับ
$mail->Send();
if(!$mail->Send()) {
บรรทัดแรกไม่จำเป็นครับ หากต้องการส่งและตรวจสอบว่าส่งสำเร็จหรือไม่ ใช้ บรรทัดที่มี if ก็เพียงพอครับ และ หากต้องการแยกบรรทัด ก็ให้ใช้ตัวแปรมารับค่า แล้วค่อยเอาตัวแปรไปตรวจครับ
Send() คือ คำสั่งส่ง เขียน 1 ครั้ง ส่ง 1 ฉบับครับ