ฟอร์มบน WordPress ส่งอีเมลไม่ถึง: PHP mail() vs SMTP Auth และการตั้ง SPF, DKIM, DMARC ให้ถูก

WordPress SMTP คือทางแก้เมื่ออีเมลจากฟอร์มติดต่อไม่ถึงหรือตกสแปม อธิบายต้นเหตุจาก PHP mail(), From ที่ผิดโดเมน และวิธีตั้ง SPF, DKIM, DMARC ให้ผ่านเกณฑ์ปัจจุบัน

โดย admin อัปเดต อ่าน 12 นาที

แชร์FacebookXLINELinkedIn
WordPress SMTP แก้ปัญหาฟอร์มส่งอีเมลไม่ถึง

WordPress SMTP คือการตั้งให้ WordPress ส่งอีเมลผ่านเซิร์ฟเวอร์อีเมลจริงด้วยการยืนยันตัวตน (SMTP Authentication) แทนการใช้ฟังก์ชัน mail() ของ PHP ซึ่งเป็นค่าเริ่มต้น นี่คือทางแก้หลักเมื่ออีเมลจากฟอร์มติดต่อ คำสั่งซื้อ หรือการรีเซ็ตรหัสผ่าน ไม่ถึงผู้รับหรือตกไปอยู่ในโฟลเดอร์สแปม

ปัญหานี้พบบ่อยขึ้นตั้งแต่ Gmail, Yahoo และ Outlook.com เข้มงวดเรื่องการยืนยันตัวผู้ส่ง อีเมลที่เคยส่งถึงเมื่อสองสามปีก่อนจึงเริ่มหายไปเงียบๆ ทั้งที่ไม่ได้แก้อะไรในเว็บ

ทำไม WordPress ที่ไม่ได้ตั้ง SMTP ใช้ mail() แล้วอีเมลไม่ถึง

ฟังก์ชัน wp_mail() ของ WordPress ใช้ PHPMailer ซึ่งค่าเริ่มต้นจะส่งผ่าน mail() ของ PHP หมายความว่าอีเมลออกจากเซิร์ฟเวอร์เว็บโดยตรง ไม่ได้ผ่านเซิร์ฟเวอร์อีเมลของโดเมน ปัญหาที่ตามมามีสามข้อ

  • ไม่มี DKIM: อีเมลไม่ได้ถูกเซ็นด้วยคีย์ของโดเมน
  • SPF อาจไม่ผ่าน: ถ้า SPF ของโดเมนไม่ได้รวม IP ของเซิร์ฟเวอร์เว็บไว้
  • ตรวจย้อนหลังยาก: ไม่มี log ฝั่งเซิร์ฟเวอร์อีเมลให้ดูว่าอีเมลถูกส่งหรือถูกปฏิเสธ

เมื่อ SPF และ DKIM ไม่ผ่าน DMARC ก็ไม่ผ่านตามไปด้วย ผู้ให้บริการอีเมลปลายทางจึงจัดอีเมลนั้นเป็นสแปมหรือปฏิเสธทิ้ง ซึ่งเป็นเหตุผลที่เว็บธุรกิจควรเปลี่ยนมาใช้ WordPress SMTP

เกณฑ์ผู้ส่งอีเมลที่ใช้อยู่ในปัจจุบัน

ตั้งแต่ปี 2024 Google และ Yahoo กำหนดให้ผู้ส่งทุกรายต้องผ่าน SPF หรือ DKIM และผู้ส่งปริมาณมากต้องมี DMARC รายละเอียดอยู่ใน Email sender guidelines ของ Google ต่อมา Microsoft ก็ประกาศข้อกำหนดคล้ายกันสำหรับ Outlook.com [ตรวจสอบ: วันที่บังคับใช้และเกณฑ์ปริมาณล่าสุดของ Microsoft]

แม้เว็บทั่วไปจะส่งอีเมลไม่ถึงเกณฑ์ผู้ส่งปริมาณมาก แต่ตัวกรองสแปมใช้หลักเดียวกันกับทุกคน การตั้ง WordPress SMTP ร่วมกับ SPF, DKIM และ DMARC ให้ครบจึงเป็นมาตรฐานขั้นต่ำ

ต้นเหตุที่พบบ่อยที่สุด: ใส่อีเมลผู้กรอกฟอร์มเป็น From

ปลั๊กอินฟอร์มหลายตัวตั้งค่าเริ่มต้นหรือถูกตั้งให้ใช้อีเมลของผู้กรอกฟอร์มเป็นผู้ส่ง (From) เช่น ลูกค้ากรอก [email protected] อีเมลแจ้งเตือนก็ออกมาในนาม [email protected] จากเซิร์ฟเวอร์ของเรา

แม้ตั้ง WordPress SMTP แล้ว ถ้ายังใช้ From แบบนี้ อีเมลก็ยังไม่ถึงอยู่ดี เพราะนี่คือการปลอมผู้ส่งในมุมของ DMARC เพราะเซิร์ฟเวอร์เราไม่มีสิทธิ์ส่งในนามโดเมน gmail.com อีเมลจะไม่ผ่าน DMARC alignment และถูกปฏิเสธ (RFC 7489) วิธีที่ถูกต้องคือ

ฟิลด์ ควรใส่
From อีเมลในโดเมนของเว็บเอง เช่น [email protected]
Reply-To อีเมลของผู้กรอกฟอร์ม

เมื่อกด Reply ในโปรแกรมอีเมล ระบบจะตอบกลับไปหาลูกค้าตามปกติ โดยอีเมลยังผ่านการตรวจทุกด่าน

ขั้นตอนที่ 1: เตรียมบัญชีอีเมลสำหรับ WordPress SMTP

สร้างบัญชีอีเมลแยกสำหรับ WordPress SMTP โดยเฉพาะ เช่น noreply@ หรือ web@ ในโดเมนเดียวกับเว็บ ไม่ควรใช้บัญชีของพนักงาน เพราะถ้ารหัสผ่านรั่วจากไฟล์ตั้งค่าเว็บ ความเสียหายจะจำกัดอยู่ที่บัญชีนี้บัญชีเดียว

ขั้นตอนที่ 2: ตั้งค่า WordPress SMTP

ใช้ปลั๊กอิน WordPress SMTP ที่ได้รับความนิยมและอัปเดตสม่ำเสมอ หรือเขียนเองผ่าน hook phpmailer_init ค่าที่ต้องใช้มีดังนี้

ค่า ตัวอย่าง
SMTP Host ชื่อเซิร์ฟเวอร์อีเมลของโดเมน
Port 587 (STARTTLS) หรือ 465 (SSL/TLS)
Authentication เปิด พร้อมชื่อผู้ใช้และรหัสผ่านของบัญชีจากขั้นตอนที่ 1
From บัญชีเดียวกับที่ใช้ยืนยันตัวตน

ตัวอย่างการตั้งค่าผ่านโค้ดใน must-use plugin โดยเก็บรหัสผ่านไว้ใน wp-config.php แทนฐานข้อมูล

add_action( 'phpmailer_init', function ( $phpmailer ) {
    $phpmailer->isSMTP();
    $phpmailer->Host       = SMTP_HOST;
    $phpmailer->Port       = 587;
    $phpmailer->SMTPSecure = 'tls';
    $phpmailer->SMTPAuth   = true;
    $phpmailer->Username   = SMTP_USER;
    $phpmailer->Password   = SMTP_PASS;
    $phpmailer->setFrom( SMTP_USER, get_bloginfo( 'name' ), false );
} );

ไม่ควรตั้ง WordPress SMTP ด้วยพอร์ต 25 เพราะเป็นพอร์ตสำหรับเซิร์ฟเวอร์ส่งต่อกัน และผู้ให้บริการจำนวนมากบล็อกขาออกเพื่อป้องกันสแปม

ขั้นตอนที่ 3: ตรวจ SPF, DKIM และ DMARC ของโดเมน

ตรวจจาก DNS ได้ด้วยคำสั่ง dig

dig +short TXT yourcompany.co.th | grep spf
dig +short TXT default._domainkey.yourcompany.co.th
dig +short TXT _dmarc.yourcompany.co.th

ชื่อ selector ของ DKIM (default ในตัวอย่าง) ขึ้นกับผู้ให้บริการอีเมล ข้อควรระวังที่พบบ่อย

  • SPF ต้องมีระเบียนเดียว: ถ้ามีสองระเบียน v=spf1 ผลจะเป็น error ทั้งคู่ ให้รวม include: ไว้ในระเบียนเดียว
  • SPF ห้าม lookup เกิน 10 ครั้ง: การ include บริการหลายเจ้าซ้อนกันทำให้เกินได้ง่าย
  • DMARC เริ่มที่ p=none: เก็บรายงานก่อน แล้วค่อยขยับเป็น quarantine และ reject เมื่อมั่นใจว่าทุกแหล่งส่งผ่านแล้ว

ขั้นตอนที่ 4: ทดสอบ WordPress SMTP และอ่าน Header

หลังตั้ง WordPress SMTP แล้ว ให้ส่งอีเมลทดสอบจากฟอร์มไปยังกล่อง Gmail แล้วเปิด Show original จะเห็นผล SPF, DKIM และ DMARC ว่า PASS หรือไม่ ใน header Authentication-Results ถ้า DKIM ผ่านแต่ DMARC ไม่ผ่าน ให้ตรวจว่าโดเมนใน From ตรงกับโดเมนที่เซ็น DKIM หรือไม่

ปลั๊กอินที่บันทึก log อีเมลขาออกช่วยได้มากเวลาลูกค้าแจ้งว่าไม่ได้รับอีเมล เพราะจะเห็นทันทีว่า WordPress ส่งออกไปแล้วหรือเกิด error ตั้งแต่ขั้นเชื่อมต่อ WordPress SMTP เช่น รหัสผ่านผิดหรือพอร์ตถูกบล็อก

เมื่อไรควรแยกอีเมลของเว็บออกจากอีเมลพนักงาน

ถ้าเว็บส่งอีเมลจำนวนมาก เช่น ร้านค้าออนไลน์ที่ส่งยืนยันออเดอร์ทุกรายการ ควรพิจารณาแยกเป็นซับโดเมน เช่น mail.shop.yourcompany.co.th หรือใช้บริการส่งอีเมลเฉพาะทาง เพื่อไม่ให้ชื่อเสียงของการส่งจากเว็บกระทบอีเมลพนักงาน ส่วนเว็บองค์กรที่มีแค่ฟอร์มติดต่อ ใช้ WordPress SMTP ผ่านบัญชีอีเมลของโดเมนก็เพียงพอ

ถ้าองค์กรยังใช้อีเมลฟรีอยู่และอยากเปลี่ยนเป็นอีเมลในโดเมนบริษัท อ่านเพิ่มเติมได้ที่ Email Hosting โซลูชันองค์กร บอกลา @gmail เปลี่ยนใช้อีเมลบริษัท

คำถามที่พบบ่อย

ทำไม WordPress ส่งอีเมลได้แต่ลูกค้าไม่ได้รับ?

ส่วนใหญ่เป็นเพราะอีเมลถูกส่งผ่าน mail() โดยไม่มี DKIM หรือใช้ From ที่ไม่ใช่โดเมนของเว็บ ทำให้ DMARC ไม่ผ่านและถูกจัดเป็นสแปม การตั้ง WordPress SMTP ร่วมกับ SPF และ DKIM แก้ได้เกือบทุกกรณี

WordPress SMTP ควรใช้พอร์ต 587 หรือ 465?

WordPress SMTP ใช้ได้ทั้งคู่ พอร์ต 587 ใช้ STARTTLS ส่วน 465 ใช้ TLS ตั้งแต่เริ่มเชื่อมต่อ ให้ใช้ตามที่ผู้ให้บริการอีเมลแนะนำ และหลีกเลี่ยงพอร์ต 25

ใช้ Gmail ส่วนตัวเป็น WordPress SMTP ให้เว็บบริษัทได้ไหม?

ไม่แนะนำให้ใช้ Gmail ส่วนตัวเป็น WordPress SMTP เพราะ From จะเป็นโดเมน gmail.com ซึ่งดูไม่น่าเชื่อถือสำหรับธุรกิจ และผูกการทำงานของเว็บกับบัญชีส่วนตัวของพนักงาน

ตั้ง DMARC เป็น p=reject ทันทีได้ไหม?

ไม่ควร ถ้ามีระบบอื่นที่ส่งอีเมลในนามโดเมนแต่ยังไม่ได้ตั้ง SPF หรือ DKIM อีเมลเหล่านั้นจะถูกปฏิเสธทันที ให้เริ่มจาก p=none แล้วอ่านรายงานก่อน

สรุป

ฟอร์มที่ส่งอีเมลไม่ถึงส่วนใหญ่แก้ได้ด้วยสามเรื่อง คือ เปลี่ยนจาก mail() เป็น WordPress SMTP, ใช้ From เป็นโดเมนของเว็บและใส่อีเมลลูกค้าใน Reply-To, และตั้ง SPF, DKIM, DMARC ให้ครบ

WordPress Hosting และ Cloud Email Hosting ของ THAI DATA HOSTING ใช้ร่วมกันได้ในโดเมนเดียว [ตรวจสอบ: ยืนยันว่า Email Hosting รองรับ SMTP Auth ที่พอร์ต 587/465 และการตั้ง DKIM] หากต้องการให้ทีมช่วยตรวจระเบียน DNS ของโดเมน ปรึกษาทีม THAI DATA HOSTING

แชร์FacebookXLINELinkedIn

มีคำถามเรื่องบริการ? ติดต่อทีมงาน

คลาวด์โฮสติ้งเพื่อ เว็บไซต์ และอีเมลองค์กร

บริการ Cloud ระดับ Enterprise ประเภท PaaS บน Global Cloud เข้าถึงได้เร็วทั้งจากในประเทศไทยและต่างประเทศ เหมาะสำหรับการเว็บไซต์องค์กร​ธุรกิจคุณภาพสูง การันตีคุณภาพการทำงานได้ตลอดเวลา ไม่มีสะดุด พร้อมสนับสนุนการเติบโตของธุรกิจคุณอย่างเต็มที่!

ระบบอีเมลบริษัท "@yourdomain.com"

ระบบอีเมลบริษัท "@yourdomain.com"

Our Email Packages
เว็บโฮสติ้งเพื่อเว็บไซต์องค์กร

เว็บโฮสติ้งเพื่อเว็บไซต์องค์กร

Our Hosting Packages
Secure Data Center

Secure Data Center

ศูนย์ข้อมูล Data Center มาตรฐานระดับโลก ระดับ Tier 3+ ระบบความปลอดภัยสูงขั้นสูงสุด

Infrastructure Security

Infrastructure Security

การันตีด้วยมาตรฐานสากล ISO 27001:2013, ISO 22301:2012, ISO 20000-1 และ CSA-STAR

Unlimited Data Transfer

Unlimited Data Transfer

Network ระดับ 1000Gbps เร็วแรงทั้งในและต่างประเทศ ไม่จำกัด Data Transfer ไม่มีค่าใช้จ่ายเพิ่ม

Free Firewall

Free Firewall

ทุกเซิร์ฟเวอร์ฟรีไฟร์วอลล์ (Firewall Protection) คัดกรองและตรวจสอบข้อมูล ปกป้องช่องโหว่ในเชิงรุก

High Availability

High Availability

รองรับ High Avaliability ในกรณีที่เกิดความเสียหายต่อ Hardware หรือแม้แต่อุทกภัย/ภัยพิบัติ การันตี Uptime 99.99% Implement ด้วย Global Cloud Infrastructure มาตราฐานระดับโลกมากกว่า 10 Zone ไม่มีความเสี่ยงเรื่องความเสียหายของข้อมูล

Security Technology Leadership

Security Technology Leadership

"ความปลอดภัย" คือ สิ่งที่เราไม่เลยละเลย ฟรี Anti D-DoS ฟรีระดับ 5Gbps โดยไม่คิดค่าบริการเพิ่ม On-premise หรือ On Cloud เรามี Solution ที่พร้อมจะดูแลความปลอดภัยต่อเซิร์ฟเวอร์และข้อมูลของคุณ

Support Any TOR Deploy

Support Any TOR Deploy

THAI DATA HOSTING พร้อมให้บริการในทุก Cloud Requirement เราสามารถตอบโจทย์และดูแล Cloud Solutions ในทุกกลุ่มธุรกิจ เพื่อให้การทำงานเป็นไปได้อย่างราบลื่น ประหยัดค่าใช้จ่าย และเป็นไปตามความต้องการ

THAIDATA

เรามุ่งเน้นการพัฒนาการบริการ รวมถึงคุณภาพของระบบเครือข่ายอย่างไม่หยุดนิ่ง โดยมีกลุ่มเป้าหมายหลักที่ชัดเจนคือ กลุ่มลูกค้าองค์กรธุรกิจขนาดย่อม (SMEs) ตลอดจนถึงองค์กรระดับ Corporation เป็นสำคัญ ด้วยบริการที่มีเสถียรภาพสูง ในราคาที่คุ้มค่าและสมเหตุ สมผล

CSA-STAR certifiedISO/IEC 27001:2013 certifiedISO 22301:2012 certifiedISO/IEC 20000-1 certified
Download Company ProfileTHAI DATA HOSTING

©2026 THAI DATA ENTERPRISE Co., Ltd. All Rights Reserved.