เขียน php ส่งเมล์ด้วย PHPMailer ด้วย Gmail Account
เนื่องจากระบบ mail ของ Scriptdd พี่ต่อได้ย้ายไปใช้ระบบของ Google Apps ซึ่งไม่มีปัญหาครับ หลักๆก็แค่ ย้าย email ของ Scriptdd ทั้งหมดไปใช้ของ Googleแค่ email ละ 2G เอง อิอิ แต่ขั้นตอนมีมากกว่านั้นสำหรับ Script ส่งเมล์จาก Server
อย่างที่กล่าวขั้นตอน ผมจึงต้องการให้ Script หน้า Website ของผมส่งผ่านระบบของ Google ด้วย
ทางออกเริ่มแรกสำหรับเรื่องการส่งเมลืของผมคือ PHPMailer
PHPMailer
เป็น php class ที่เขียนขึ้นมาเพื่อจัดการเรื่องการส่งเมล์ให้สะดวกง่ายดายมากขึ้น
กล่าวคือ PHPMailer จะไม่สนใจว่า Server จะส่งเมล์ด้วย smtp , sendmail หรืออะไรก็ตาม
เมื่อเรา config เอาไว้ตอน Setup ครั้งเดียว เราก็เพียงเขียน script ส่งเมล์
ตาม parameter ต่างๆที่ Class ของ PHPMailer ระบุไว้เท่านั้นเอง
ฉะนั้นมันก็เลยทำให้ผมสะดวกขึ้นเวลาย้าย Script ไปมาไปใช้ Server โน้นก็ config ส่วนส่งเมล์
แบบนึง ไปอีก Server ก็ config ส่วนส่งเมล์อีกแบบนึงโดยไม่กระเทือนส่วนหลักของ Script

http://phpmailer.sourceforge.net/
ที่กล่าวมาทั้งหมด ผมไม่สอนครับ (งงแดกซะ) ไปหาอ่านเอาเองเพราะ Script และ ตัวอย่าง
ของ Website หลักเขียนไว้ละเอียดมากแล้ว ขยันนิดนะครับ
Config ให้ใช้งานกับ Gmail ได้
อย่างที่กล่าวไว้ตอนแรกว่า Scriptdd ใช้ระบบ mail ของ Gmail
ซึ่งหากใครเคยใช้งานจะทราบว่า Gmail อนุญาตให้ใช้ pop ได้คุณสามารถใช้ Outlook มาดึง mail ของคุณ
ไปได้ ฟรี !!
ซึ่งทั้ง pop และ smtp ของ gmail นั้น config ผ่าน SSL ทำให้เกิดปัญหาเมื่อเรา
ต้องการ config PHPMailer ให้เข้าไปเรียกใช้งาน
ฝรั่งแก้ให้แล้วครับไปอ่านโลด

http://www.buayacorp.com/archivos/phpmailer-con-gmail/
ไปหาอ่านกันดูครับ
เค้าแก้ script บางส่วนของ PHPMailer โดยเพิ่มให้รู้จัก SSL เข้าไป
ทั้งนี้ทั้งนั้น Server ต้องลง OpenSSL เอาไว้ด้วยนะครับ
ตัวอย่างการเรียกใช้ก็ดูจากหน้า Web เค้านะครับ :P
หรือว่า สุดๆแล้ว ขี้เกียจจะคิดอะไร ??~ ก็ คลิกที่นี่ >__< ผม Pack ทุกอย่างเอาไว้ให้พร้อมหมดแล้ว
สรุป
สรุปคือผมเอา PHPMailer มาโมดิฟายตามที่ Website ด้านบนบอกเพื่อให้สามารถส่งเมล์ผ่าน Account ของ Gmail ได้
ข้อดี
- ระบบส่งเมล์ที่แน่นอนขึ้น เนื่องจากส่งผ่าน Gmail
- ไม่ต้องคอยปวดหัวว่าเดี๋ยวส่งผ่าน เดี๋ยวส่งไม่ผ่าน
ข้อเสีย
- ระบบของ Gmail ให้เราสามารถส่งเมล์ได้สูงสุดไม่เกิน 100 mail ต่อวัน
ใครที่คิดจะเอาไปทำ spam newsletter ไปหาวิธีกันต่อเอาเอง :P
จบล่ะ
อ้างอิง
Website หลักของ PHPMailer
http://phpmailer.sourceforge.net/
หน้าตัวอย่าง Script
http://phpmailer.sourceforge.net/extending.html
Website บทความแก้ไข PHPMailer ให้ส่ง mail ผ่าน Gmail ได้
http://www.buayacorp.com/archivos/phpmailer-con-gmail/
Read (9,536)
Comments (11)
2007-06-17 20:58:48
ความคิดเห็น
แจ่มมากคับ ขอบคุณที่มีเว็บนี้อยู่ บน ประเทศไทย
โดยคุณ sw2band
2007-06-17 22:56:27
น่าสนใจทีเดียวครับ กำลังติดปัญหาส่งเมล์ผ่านบ้างไม่ผ่านบ้างพอดี ขอบคุณครับ
โดยคุณ Tatump
2007-06-18 20:13:44
แหม ๆ ๆ ไหน ๆ ก็ ไหน ๆ นะเฮีย
Gmail อนุญาตให้ใช้ pop ได้ เราสามารถใช้ นกฟ้าร้อง มาดึง mail ของเราไปได้ ฟรี
;)
โดยคุณ pF ;)
2007-06-20 06:30:00
Warning: fsockopen() expects parameter 2 to be long, string given in C:\AppServ\www\phpmailer\class.smtp.php on line 105
Error: SMTP Error: Could not connect to SMTP host.
มัน warning แบบนี้อ่ะครับ ผมเขียนเองส่งแบบไม่แนบ file ส่งได้นะครับ
โดยผ่าน SMTP แต่ใช้ phpmailer มัน warning ครับ
<?php
require_once 'class.phpmailer.php';
$mail = new PHPMailer ();
$mail -> From = "foo@gmail.com";
$mail -> FromName = "Foo";
$mail -> AddAddress ("ttuntawat@domain.com");
$mail -> Subject = "Test";
$mail -> Body = "<h3>From GMail!</h3>";
$mail -> IsHTML (true);
$mail->IsSMTP();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'foo@gmail.com';
$mail->Password = '******';
if(!$mail->Send()) {
echo 'Error: ' . $mail->ErrorInfo;
}
else {
echo "Error";
}
?>
โดยคุณ por
2007-07-12 17:41:50
ok.
โดยคุณ ศักดิ์ชัย
2007-09-05 17:23:00
ขอบคุณคับ
โดยคุณ Potter_Devil
2007-10-30 14:05:19
ถ้าผมจะทำ maillist ในการส่ง ข่าว ไป แล้วใช้ smtp ของ mail.gmail.com นี้ จะสามารถทำได้ไหมครับ โดยที่ mail ที่เราส่งต่อ มากกว่า 100 ฉบับ... ต่อวัน
โดยคุณ las
2008-02-01 10:21:39
ทดสอบการใช้งานดูแล้วไมไ่ด้ครับ
ขึ้นว่าแบบนี้ Warning: fsockopen(): no SSL support in this build in C:\WM\www\class.smtp.php on line 105
Warning: fsockopen(): unable to connect to smtp.gmail.com:465 in C:\WM\www\class.smtp.php on line 105
Êè§ä»áÅéÇ
โดยคุณ Liang
2008-02-27 09:39:43
ดีมากเลยครับ ขอบคุณครับ
โดยคุณ tgipmt-webmaster
2008-03-28 15:52:06
ลองใช้แล้วแต่ พอส่งภาษาไทย มันเป็นภาษาต่างดาว แก้ยังไงดี ลอง encode ทุกภาษาแล้วก็ยังไม่ได้ค่ะ
โดยคุณ abc
2008-07-27 23:49:07
ใช้ไม่ได้ครับ
โดยคุณ day2soft
2008-09-09 20:10:24