ส่งเมลล์ด้วย PHP
PHP เป็นอีกภาษาหนึ่งที่ผมชอบเอามาเชื่อมต่อกับ MATLAB โดยเฉพาะเมื่อผมต้องเอา MATLAB ไปประมวลผลบน server หลังจากนั้นผมก็จะใช้ PHP อ่านข้อมูลที่ได้จาก MATLAB แล้วนำไปแสดงผลบนเว็บ
วันนี้ผมจะใช้ PHP อ่านข้อมูลจาก text file แล้วส่งเข้าเมลล์ลองดูนะครับ
fopen ใช้สำหรับอ่านไฟล์
fgets ใช้สำหรับอ่านข้อมูลที่ละบรรทัด โดยข้อมูลที่อ่านได้จะอยู่ในรูปแบบของ string
ดาวน์โหลด PHPMailer หรือ ดาวน์โหลดจาก link สำรอง
จากนั้นเข้าไปที่ gmail ของคุณ ที่จะใช้เป็น mail ผู้ส่งเพื่อตั้งค่าความปลอดภัยตามนี้
https://myaccount.google.com/security
จากนั้นเลื่อนลงมาตรงนี้ แล้วตั้งค่าให้เป็น on ปกติจะเป็น off
จากนั้นใช้โค้ดต่อไปนี้ในการส่งเมลล์
แค่นี้ก็เสร็จเรียบร้อยครับ หลังจากนั้นก็ลองรันดูได้เลย ก็จะเห็นเมลล์ประมาณนี้
และถ้าหากต้องการส่งเมลล์หาผู้รับหลายคน ให้ใช้วิธีการส่งแบบ CC ซึ่งมี 2 แบบ
แบบที่ 1 ผู้รับทุกคนสามารถเห็นเมลล์ของคนอื่นได้
ให้ใช้คำสั่ง AddCC ตัวอย่างเช่น
$mail->AddCC("abc@hotmail.com","MyName");
แบบที่ 2 ผู้รับแต่ละคนเห็นได้เฉพาะเมลล์ของตัวเอง
ให้ใช้คำสั่ง AddBCC ตัวอย่างเช่น
$mail->AddBCC("abc@hotmail.com","MyName");
ขอขอบคุณข้อมูลจาก
http://www.thaiseoboard.com/index.php?topic=397538.0
วันนี้ผมจะใช้ PHP อ่านข้อมูลจาก text file แล้วส่งเข้าเมลล์ลองดูนะครับ
ขั้นตอนที่ 1 อ่านข้อมูลจาก text file
<?php fn = "testWrite.txt"; $fid = fopen($fn,"r"); $data1 = fgets($fid); $data2 = fgets($fid); $data3 = fgets($fid); $data4 = fgets($fid); $data5 = fgets($fid); fclose($fid); ?>
fopen ใช้สำหรับอ่านไฟล์
fgets ใช้สำหรับอ่านข้อมูลที่ละบรรทัด โดยข้อมูลที่อ่านได้จะอยู่ในรูปแบบของ string
ขั้นตอนที่ 2 ส่งเมลล์
ในขั้นตอนนี้ผมจะใช้ PHPMailer ในการส่งนะครับ ดังนั้นก่อนอื่นให้ดาวน์โหลด PHPMailer ไปใส่ไว้ใน host ก่อน (xampp>>htdocs>>PHPMailer)ดาวน์โหลด PHPMailer หรือ ดาวน์โหลดจาก link สำรอง
จากนั้นเข้าไปที่ gmail ของคุณ ที่จะใช้เป็น mail ผู้ส่งเพื่อตั้งค่าความปลอดภัยตามนี้
https://myaccount.google.com/security
จากนั้นเลื่อนลงมาตรงนี้ แล้วตั้งค่าให้เป็น on ปกติจะเป็น off
จากนั้นใช้โค้ดต่อไปนี้ในการส่งเมลล์
<?php date_default_timezone_set("Asia/Bangkok"); $t = time(); $tx = date("Y-m-d H:i:s",$t); $message = " <html> <body> <table width=400px> <tr> <th> </th> <th> </th> </tr> <tr> <td>Opent time</td> <td>" . $tx . "</td> </tr> <tr> <td>Order type</td> <td>". $data1 ."</td> </tr> <tr> <td>Lot size</td> <td>". $data2 ."</td> </tr> <tr> <td>Open price</td> <td>". $data3 ."</td> </tr> <tr> <td>Stoploss</td> <td>". $data4 ."</td> </tr> <tr> <td>Take profit</td> <td>". $data5 ."</td> </tr> </table> </body> </html> "; require_once('PHPMailer/PHPMailerAutoload.php'); $mail = new PHPMailer(); $mail->isSMTP(); $mail->SMTPAuth = true; $mail->SMTPSecure = "tls"; $mail->Host = "smtp.gmail.com"; $mail->Port = 587; $mail->isHTML(); $mail->CharSet = "utf-8"; //ตั้งเป็น UTF-8 เพื่อให้อ่านภาษาไทยได้ $mail->Username = "xxxx@gmail.com"; //ให้ใส่ Gmail ของคุณเต็มๆเลย $mail->Password = "xxxxxx"; // ใส่รหัสผ่าน $mail->SetFrom = ('xxxxx@gmail.com'); //ตั้ง email เพื่อใช้เป็นเมล์อ้างอิงในการส่ง $mail->FromName = "yyyy"; //ชื่อที่ใช้ในการส่ง $mail->Subject = "Open Order"; //หัวเรื่อง emal ที่ส่ง //$mail->Body = "นี่คือเมลล์ทดสอบ"; //ตรงส่วนนี้ใส่เป็นสตริงธรรมดาหรือ HTML ก็ได้ $mail->Body = $message; //ผมใส่เป็น HTML $mail->AddAddress('kritthanit.m@gmail.com','Kritthanit'); //อีเมล์และชื่อผู้รับ //ถ้าต้องการแนบไฟล์ภาพ ให้ใช้โค้ดต่อไปนี้ //$mail->AddAttachment("files/1.rar"); //$mail->AddAttachment("files/2.rar"); //$mail->AddAttachment("files/1.jpg"); //$mail->AddAttachment("files/2.png"); //ตรวจสอบว่าส่งผ่านหรือไม่ if ($mail->Send()){ echo "send complete"."<br>"; echo date("Y-m-d H:i:s",$t); }else{ echo "การส่งไม่สำเร็จ"; } ?>
แค่นี้ก็เสร็จเรียบร้อยครับ หลังจากนั้นก็ลองรันดูได้เลย ก็จะเห็นเมลล์ประมาณนี้
และถ้าหากต้องการส่งเมลล์หาผู้รับหลายคน ให้ใช้วิธีการส่งแบบ CC ซึ่งมี 2 แบบ
แบบที่ 1 ผู้รับทุกคนสามารถเห็นเมลล์ของคนอื่นได้
ให้ใช้คำสั่ง AddCC ตัวอย่างเช่น
$mail->AddCC("abc@hotmail.com","MyName");
แบบที่ 2 ผู้รับแต่ละคนเห็นได้เฉพาะเมลล์ของตัวเอง
ให้ใช้คำสั่ง AddBCC ตัวอย่างเช่น
$mail->AddBCC("abc@hotmail.com","MyName");
ขอขอบคุณข้อมูลจาก
http://www.thaiseoboard.com/index.php?topic=397538.0