ส่งเมลล์ด้วย PHP

PHP เป็นอีกภาษาหนึ่งที่ผมชอบเอามาเชื่อมต่อกับ MATLAB โดยเฉพาะเมื่อผมต้องเอา MATLAB ไปประมวลผลบน server หลังจากนั้นผมก็จะใช้ PHP อ่านข้อมูลที่ได้จาก MATLAB แล้วนำไปแสดงผลบนเว็บ

วันนี้ผมจะใช้ 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

ความเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การแก้สมการ Differential ด้วย MATLAB

การหาค่าเฉลี่ยโดยไม่ต้องเก็บค่า

การเปรียบเทียบข้อมูล