ถ้าใครเจอปัญหา WordPress ส่งอีเมลไม่ได้ ไม่ว่าจะเป็นอีเมลแจ้งเตือนจากฟอร์มติดต่อ, WooCommerce, ระบบสมัครสมาชิก หรือการ reset password อันนี้ถือว่าอันตรายร้ายแรง หลายคนไม่รู้ตัว คิดว่าระบบทำงานปกติจนกระทั่งวันนึง ..ทำไมกุ reset password แล้ว email ไม่มาฟ่ะ? ปัญหา email ของ WordPress เจ๊งนี้อาจทำให้คุณเสียลูกค้าโดยไม่รู้ตัว โดยเฉพาะเมื่อ wp_mail()
ไม่ทำงานหรืออีเมลไม่เข้า inbox
บทความนี้จะสรุป สาเหตุหลักที่ทำให้ WordPress mail ไม่ส่ง และ แนวทางแก้ไขแบบมืออาชีพ ที่รองรับทุกเคส ไม่ว่าคุณจะใช้ shared hosting, VPS หรือ cloud
สาเหตุที่ WordPress ไม่สามารถส่งอีเมลได้
1. ฟังก์ชัน wp_mail()
หรือ php mail
ไม่ทำงาน
WordPress ใช้ฟังก์ชัน wp_mail()
ซึ่งภายในใช้ php mail()
ถ้าเซิร์ฟเวอร์ไม่มี Mail Transfer Agent (MTA) เช่น Sendmail หรือ Postfix ก็จะส่งไม่ได้เลย หรือพูดง่ายๆ ทาง Hosting เขาปิดไว้ไม่อยากให้ใช้ครับ กลัวคนเอาไปส่งสแปมเมล์
2. ปลั๊กอินหรือธีมรบกวนระบบส่งเมล
บางปลั๊กอินอาจแทรกตัวแปรผิด หรือเปลี่ยน From address ไม่เหมาะสม ทำให้ WordPress mail ไม่ส่งหรือถูก SMTP ปฏิเสธ
3. โฮสต์บล็อกพอร์ต SMTP
บางโฮสต์ปิดพอร์ต 587, 465 หรือ 25 ซึ่งเป็นพอร์ต SMTP ทำให้ wordpress smtp ไม่ทำงาน แม้ตั้งค่าถูกแล้วก็ตาม อันนี้ Hosting ส่วนใหญ่ไม่ค่อยบล๊อกนะ
วิธีแก้ไขเมื่อ WordPress ส่งเมลไม่ได้ (SMTP & wp_mail)
1. ทดสอบ wp_mail()
ว่าทำงานหรือไม่
วิธีเช็คง่ายๆ เลยคือ ไปหน้า login แล้วลอง reset รหัสผ่าน ถ้าไม่มี email สำหรับ reset รหัสผ่านส่งไปให้ แสดงว่า Hosting ที่ใช้อยู่ ไม่อนุญาติให้ใช้งาน function wp_mail()
หรือถ้าใครเทพหน่อยก็เขียน function wp_mail()
ถ้าส่งไม่ได้ ก็ต้องเปลี่ยนไปใช้ SMTP เป็นแนวทางที่ดีที่สุด
2. ใช้ SMTP ปลอดภัยและเสถียร
ติดตั้งปลั๊กอินเช่น WP Mail SMTP, Post SMTP หรือ Easy WP SMTP จากนั้นตั้งค่าประมาณนี้ (ในกรณีที่เราใช้ระบบ email ของ gmail):
- SMTP Host:
smtp.gmail.com
- SMTP Port:
587
- Encryption:
TLS
- Username: [email protected]
- Password: ใช้ App Password จาก Google
หาก wordpress smtp ไม่ทำงาน ให้ตรวจสอบ log และพอร์ตว่าเปิดอยู่หรือไม่
3. ใช้ SMTP ระดับ Enterprise
ผู้ให้บริการ | จุดเด่น |
---|---|
Mailgun | ส่งเร็ว มีระบบ log ครบ |
SendGrid | รองรับ API อย่างดี |
Amazon SES | ราคาถูกมาก เหมาะกับเว็บใหญ่ |
Postmark | เน้น email ยืนยันแบบ transactional |
สรุป: WordPress mail ไม่ส่ง ต้องตรวจอะไรบ้าง
- wp_mail ไม่ทำงาน → เปลี่ยนไปใช้ SMTP
- wordpress smtp ไม่ทำงาน → เช็กพอร์ต, auth, log
- ปลั๊กอินแทรก email ผิด → ตรวจ From address
- ส่งจาก contact form ไม่ได้ → ตรวจปลั๊กอิน + SMTP
การตั้งค่าอีเมลของ WordPress อย่างถูกต้องจะช่วยให้เว็บไซต์คุณ ส่งอีเมลได้เสถียร, ไม่เข้า spam, และเพิ่มความน่าเชื่อถือของแบรนด์