วันศุกร์ที่ 6 ตุลาคม พ.ศ. 2560

(Soulved) ตั้งค่า Email ถูกต้องแล้วแต่ Wordpress ก็ยังส่ง Email ไม่ออก ?

อาการของปัญหา

ไม่สามารถส่ง Email ออกจาก Wordpress ได้ ซึ่งเรามั่นใจว่าเราตั้งค่าทุกอย่างถูกต้องแล้วหรือก่อนหน้านี้ก็ใช้งานได้ปกติด้วยค่านี้ หรือเป็นหลังจากการย้าย Web Server


จากภาพสังเกตุได้ว่าเมื่อเราทดสอบส่ง Email จาก Wordpress แล้วมี  Error Code หลังจากบรรทัด SERVER -> CLIENT 220 TLS go ahead ซึ่งหมายความว่า Wordpress จะเชื่อมต่อมายัง Mail Server แบบ TLS ซึ่ง Mail Server ส่วนใหญ่ไม่ได้รองรับการเชื่อมต่อแบบ TLS ถึงแม้ว่าก่อนหน้า Setting เราจะตั้งค่าแบบ No encryption และไม่ได้เลือก TLS ไว้แล้วก็ตาม

สาเหตุของปัญหา

เกิดจากในความเป็นจริงแล้ว Wordpress มีการเชื่อมต่อแบบ TLS ตลอดเวลาในระดับ Hardcode ถึงแม้ว่าในหน้าการตั้งค่าเราจะไม่ได้เลือกแบบ TLS หรือ No encryption ไปแล้วแต่ใน Hardcode มันเชื่อมต่อไปยัง Mail Server แบบ  TLS ตลอด


การแก้ปัญหา




  1. ไปที่ File: wp-content/plugins/wp-mail-smtp/wp_mail_smtp.php 
  2. หลังบรรทัด "$phpmailer->Password = get_option('smtp_pass');"  
  3. เพิ่ม Code ตามไฟล์แนบลงไปคือ
//Fixed for Disable TLS
$phpmailer->SMTPSecure = false;
$phpmailer->SMTPAutoTLS = false;
//Fixed for Disable TLS
เพื่อเป็นการ Fix ให้ตัว Code ไม่ต้องมีการเชื่อมต่อแบบ TLS


บทความที่เกี่ยวข้อง