|
|
|
PHPMailer ส่งอีเมลล์ผ่าน SMTP server
การใช้ฟังก์ชั่น mail() ของ php ที่มีให้มานั้น มักจะเจอกับปัญหาส่งอีเมลล์แล้วไปลง junk หรือ spam box ของผู้รับ ทำให้ผู้ส่งกับผู้รับอีเมล์พลาดการติดต่อกันได้ ผมได้ศึกษาหาวิธีการแก้ไขปัญหาดังกล่าว ก็ไปเจอสาเหตุที่ทำให้อีเมล์ที่ส่งไปนั้นลง junk หรือ spam box เพราะ ฟังก์ชั่น mail() นั้นจะใช้ user DirectAdmin สร้างขึ้นมาในการส่งอีเมล์ แต่อีเมล์ผู้ส่งในโปรแกรมที่เราเขียนมักจะเป็นอีเมล์ของเรา และไม่ตรงกับชื่อ user ที่ DirectAdmin สร้างขึ้น ทำให้ mail server ของผู้รับอย่าง gmail, hotmail, yahoo มองอีเมล์ที่เราส่งไปเป็น junk หรือ spam สำหรับการแก้ไขปัญหานั้น หลายๆคำแนะนำ เขาแนะนำให้ส่งเมล์ผ่าน SMTP server เพราะจะทำให้ชื่ออีเมล์ผู้ส่งจริงๆเป็นชื่อที่เรากำหนดไว้ ไม่ใช่ชื่อ user ที่ DirectAdmin สร้างขึ้นนั่นเอง วันนี้เลยมาแนะนำวิธีการใช้งาน PHPMailer ครับ PHPMailer เป็น php class สำหรับใช้ส่งอีเมล์ สามารถส่งอีเมล์ผ่าน SMTP server ได้ ส่งได้ทั้งแบบ html และ text รวมไปถึงสามารถแนบไฟล์ในอีเมล์ที่ต้องการส่งได้ด้วย Feature ของ PHPMailer มีดังนี้ * Supports emails digitally signed with S/MIME encryption! * Supports emails with multiple TOs, CCs, BCCs and REPLY-TOs * Works on any platform. * Supports Text & HTML emails. * Embedded image support. * Multipart/alternative emails for mail clients that do not read HTML email. * Flexible debugging. * Custom mail headers. * Redundant SMTP servers. * Support for 8bit, base64, binary, and quoted-printable encoding. * Word wrap. * Multiple fs, string, and binary attachments (those from database, string, etc). * SMTP authentication. * Tested on multiple SMTP servers: Sendmail, qmail, Postfix, Gmail, Imail, Exchange, etc. * Good documentation, many examples included in download. * It's swift, small, and simple. PHPMailer สามารถดาวน์โหลดได้ที่ http://phpmailer.worxware.com/index.php?pg=phpmailer หลังจากที่ดาวน์โหลดไฟล์มาแล้วให้แตกไฟล์ออกมา จะมีไฟล์ของ PHPMailer ให้เรา include ไฟล์ class.phpmailer.php ไปใน script ที่เราต้องการส่งอีเมล์ สำหรับตัวอย่างการเขียน php script ให้ส่งอีเมล์ผ่าน SMTP server ด้วย PHPMailer มีดังนี้ สำหรับข้อมูลและเอกสารต่างๆเกี่ยวกับ PHPMailer สามารถอ่านได้ใน document ของ PHPMailer ครับ Download : http://www.picohosting.com/files/PHPMailer_v5.0.2.zip หมายเหตุ การส่งอีเมล์โดยผ่าน SMTP server เป็นเพียงแค่การป้องกันอีเมล์ที่เราส่งไปนั้นลง junk หรือ spam box อีกวิธีหนึ่งเท่านั้น ยังมีปัจจัยอื่นอีกหลายๆอย่างที่ทำให้อีเมล์ของเราที่ส่งไปถูกจับให้ลง junk หรือ spam box ครับ ที่มา Credit : http://www.picohosting.com/howto/phpmailer |
|
ส่งเมลยังไงไม่ให้เข้าไปอยู่เมล
|
|
[ ความเห็นที่ 1]
RE : ส่งเมลยังไงไม่ให้เข้าไปอยู่เมลขยะ โพสต์เมื่อ: วันเสาร์ 26 มีนาคม 2554 01:46 น. การส่ง Mail SMTP นั้นมีข้อดีมากกว่า การใช้ mailer ธรรมดาเนื่องจาก เป็นการส่ง E-mail ที่ต้องมีตัวต้นในการส่ง จึงทำให้ Email ที่ส่งนั้นถูกมองว่าเป็น spam น้อยลง ดังนั้นเรามาดูวิธีใช้ phpmailer จาก php กันค่ะ - ใช้แก้ปัญหาสำหรับระบบ security ที่มีการป้องกันการใช้งาน mail หรือ ถูก disable mail ใน php.ini ซึ่งอาการจะเกิดขึ้นดังนี้ - การส่ง Mail แบบ SMTP นั้นเป็นการส่งจาก Email ที่มีตัวตน ดังนั้นจึงเพิ่มโอกาศ ที่ Mail จะไปยังผู้รับและไม่เข้า junkbox มากขึ้น
|
| PHPMailer |
|
[ ความเห็นที่ 2]
RE : ส่งเมลยังไงไม่ให้เข้าไปอยู่เมลขยะ โพสต์เมื่อ: วันเสาร์ 26 มีนาคม 2554 02:02 น. ส่งเมล์จากเว็บของเราให้เข้า inbox hotmail ให้ได้ทุกครั้งก็บังเอิญว่าในเว็บ mocyc.com มีระบบที่ต้องส่งเมล์ถึงสมาชิกอยู่บ่อยครั้ง และจากการใช้งานระบบส่งเมล์บน Server เพื่อส่งเมล์ไปยัง Hotmail บางทีก็เข้า Inbox บ้าง บางทีก็ไปอยู่ Junkbox บ้าง บางทีไม่เข้าเลยก็มี ก็เลยต้องหาวิธีส่งเพื่อให้เข้า Inbox ให้ได้ ลองทั้งใช้คำสั่ง mail เอง และ ใช้ SMTP เพื่อส่งก็ยังเจออาการเดิมๆ ปกติผมจะใช้ PHPmailer ในการส่งเมล์อยู่แล้ว พอเจอปัญหาส่งเมล์ไม่เข้าหนักขึ้นๆ ผมก็เลยต้องเปลี่ยนมาเป็น ใช้ PHPMailer ส่งผ่าน Gmail ซึ่งก็สามารถส่งเมล์เข้า Inbox Hotmail ได้ทุกครั้งเช่นกัน แต่มันติดอยู่ที่ Gmail ให้ส่งได้ไม่เกิน 100 Mail ต่อวันเท่านั้น (ทำไมน้อยจังฟ่ะ) ตามไปอ่าน เขียน php ส่งเมล์ด้วย PHPMailer ด้วย Gmail Account ได้จากเว็บ 9aum ส่วนวิธีการใช้งาน PHPMailer ขอไม่พูดถึงครับ ไปดูเพิ่มเติมได้ที่ http://phpmailer.sourceforge.net/ ก็จากที่ใช้ Gmail แล้วมีปัญหาว่ามันส่งได้แค่วันละ 100 Mail ต่อวัน นี่เอง จึงทำให้เกิดปัญหาว่าเมื่อเกิน 100 ไปเมล์ก็จะส่งไม่ถึงจุดหมาย ก็เลยต้องหาวิธีใหม่… และแล้วก็พบทางสว่าง เมื่อได้เห็นข้อความนี้ Yahoo Mail email send limit - no more than 100 emails or recipients per hour โดยที่ทาง Yahoo.com สามารถให้ส่งเมล์ได้ถึง 100 Mail ไม่ใช่ต่อวัน แต่เป็นต่อชั่วโมง……โอ้วแม่เจ้า ก็จัดแจงเปลี่ยนค่าตัวแปรในสคริปส่งเมล์ดูสิว่าจะส่งได้ไหม $mail = new PHPMailer(); $mail->SetFrom(”youruser@yahoo.com”, “Mocyc Dot Com”); $message = “มีคนตอบประกาศของท่านใน Mocyc.com<br /><br />”; $mail->Subject = ‘Comment on your classified Mocyc.com’; $mail->MsgHTML($message); $address = $arr_member[’email’]; $mail->Send(); ได้ครับ ผมลองส่งให้ตัวเองกว่า 100 ครั้งต่อชั่วโมง ยังส่งได้ ไม่มีหลุดครับ เข้า Inbox ตลอดครับ |
| PHPMailer |
|
[ ความเห็นที่ 3]
RE : ส่งเมลยังไงไม่ให้เข้าไปอยู่เมลขยะ โพสต์เมื่อ: วันอาทิตย์ 27 มีนาคม 2554 00:56 น. Microsoft has recently made changes to their Hotmail ports and settings. Our basic example on the PHPMailer website now is: require_once('../class.phpmailer.php'); |
| สำหรับ hotmail.co.th |
|




