ตั้งค่า WordPress ส่งอีเมลด้วย SMTP บน Hosting

ปัญหา WordPress ส่งอีเมลไม่ได้ หรืออีเมลตกไปอยู่ในกล่อง Spam ของลูกค้า เป็นเรื่องที่เจ้าของเว็บไซต์พบบ่อยมาก ไม่ว่าจะเป็นอีเมลยืนยันการสมัครสมาชิก อีเมลรีเซ็ตรหัสผ่าน หรืออีเมลแจ้งคำสั่งซื้อจาก WooCommerce ทุกอย่างต้องพึ่งพาระบบส่งอีเมลที่เชื่อถือได้ บทความนี้จะอธิบายวิธีตั้งค่า SMTP บน WordPress ที่ใช้ Shared Hosting ให้ส่งอีเมลได้อย่างน่าเชื่อถือและไม่ตก Spam

บทความนี้ครอบคลุม: การเข้าใจสาเหตุที่ WordPress ส่งอีเมลไม่ได้, ความแตกต่าง PHP mail() กับ SMTP, การติดตั้ง WP Mail SMTP, การตั้งค่ากับ DirectAdmin Email Hosting ของ AsiaGB, การใช้ Gmail SMTP, การตั้งค่า SPF/DKIM และการแก้ปัญหาที่พบบ่อย

1. ทำไม WordPress ถึงส่งอีเมลไม่ได้บน Hosting

WordPress ใช้ฟังก์ชัน wp_mail() ในการส่งอีเมลทุกประเภท ซึ่งโดยค่าเริ่มต้นจะเรียกใช้ PHP mail() function ที่ติดตั้งมาพร้อมกับเซิร์ฟเวอร์ แต่บน Shared Hosting นั้น PHP mail() มักมีข้อจำกัดหลายอย่างที่ทำให้อีเมลส่งไม่สำเร็จหรือตก Spam

สาเหตุหลักที่ WordPress ส่งอีเมลไม่ได้

วิธีแก้ไขที่ดีที่สุดคือเปลี่ยนไปใช้ SMTP (Simple Mail Transfer Protocol) ซึ่งมีการยืนยันตัวตนด้วย Username และ Password และใช้การเชื่อมต่อที่เข้ารหัส ทำให้ Mail Server ปลายทางไว้วางใจมากขึ้นอย่างมีนัยสำคัญ

2. PHP mail() vs SMTP ต่างกันอย่างไร

ก่อนจะลงมือตั้งค่า มาทำความเข้าใจความแตกต่างระหว่างสองวิธีนี้กันก่อน เพื่อให้เห็นภาพชัดเจนว่าทำไม SMTP ถึงเป็นตัวเลือกที่ดีกว่าสำหรับ WordPress บน Hosting

PHP mail() — วิธีดั้งเดิมที่มีปัญหา

SMTP — วิธีมาตรฐานที่เชื่อถือได้

สรุปสำคัญ: SMTP คือมาตรฐานอุตสาหกรรมสำหรับการส่งอีเมล ถ้าเว็บไซต์ของคุณต้องพึ่งพาอีเมลเพื่อสื่อสารกับลูกค้า ให้เปลี่ยนจาก PHP mail() มาใช้ SMTP เสมอโดยไม่มีข้อยกเว้น

3. ติดตั้งและตั้งค่า Plugin WP Mail SMTP

WP Mail SMTP คือ Plugin ที่ได้รับความนิยมสูงสุดสำหรับแก้ปัญหาการส่งอีเมลบน WordPress มีผู้ใช้งานมากกว่า 4 ล้านเว็บไซต์ทั่วโลก พัฒนาโดยทีม WPForms และมีรุ่นฟรีที่ครอบคลุมความต้องการพื้นฐานได้ครบถ้วน

ขั้นตอนการติดตั้ง WP Mail SMTP

  1. เข้า WordPress Admin Panel → Plugins → Add New
  2. ค้นหา "WP Mail SMTP" ในช่องค้นหา
  3. หา Plugin ชื่อ "WP Mail SMTP by WPForms" กด Install Now
  4. รอ Install เสร็จ แล้วกด Activate
  5. ระบบจะแสดง Setup Wizard ขึ้นมา สามารถกด "Skip this step" เพื่อตั้งค่าเองได้
  6. ไปที่ WP Mail SMTP → Settings ในเมนูซ้าย

การตั้งค่าพื้นฐาน (From Email และ From Name)

ในหน้า Settings ส่วน General ให้ตั้งค่าดังนี้

เลือก Mailer ที่เหมาะสม

WP Mail SMTP รองรับ Mailer หลายประเภท แต่ละอย่างเหมาะกับสถานการณ์ต่างกัน

4. ตั้งค่า SMTP กับ DirectAdmin Email Hosting ของ AsiaGB

ถ้าคุณใช้ Hosting ของ AsiaGB คุณมีบัญชีอีเมลของโดเมนตัวเองอยู่แล้วและสามารถใช้เป็น SMTP Server สำหรับ WordPress ได้ทันทีโดยไม่มีค่าใช้จ่ายเพิ่มเติม วิธีนี้ดีที่สุดสำหรับเว็บไซต์ส่วนใหญ่ เพราะอีเมลส่งจากโดเมนของคุณเองทำให้ดูน่าเชื่อถือสำหรับผู้รับ

ขั้นตอนที่ 1: สร้างบัญชีอีเมลใน DirectAdmin

  1. Login เข้า DirectAdmin ที่ yourdomain.com:2222
  2. ในหมวด E-Mail Manager คลิก "Create Mail Account"
  3. ใส่ Username เช่น noreply หรือ wordpress
  4. ตั้ง Password ที่แข็งแกร่ง (ควรมีตัวอักษรพิมพ์ใหญ่/เล็ก ตัวเลข และอักขระพิเศษ)
  5. Quota: 50MB ก็เพียงพอสำหรับ SMTP เพราะอีเมลที่ส่งจะไม่ถูกเก็บในกล่องนี้
  6. กด Create เพื่อสร้างบัญชี

ขั้นตอนที่ 2: หาค่า SMTP Server จาก DirectAdmin

ค่า SMTP สำหรับ DirectAdmin ของ AsiaGB มักเป็นดังนี้

ขั้นตอนที่ 3: กรอกค่าใน WP Mail SMTP

  1. ไปที่ WP Mail SMTP → Settings
  2. เลื่อนลงไปที่ส่วน Mailer เลือก "Other SMTP"
  3. กรอกค่า SMTP Host, Port, Encryption ตามที่ระบุด้านบน
  4. เปิด Auto TLS ไว้
  5. เปิด Authentication
  6. ใส่ SMTP Username และ Password
  7. กด Save Settings
SMTP Host:       mail.yourdomain.com
SMTP Port:       587
Encryption:      TLS
Auto TLS:        เปิด
Authentication:  เปิด
SMTP Username:   [email protected]
SMTP Password:   รหัสผ่านที่ตั้งใน DirectAdmin

หมายเหตุ: ถ้า mail.yourdomain.com ใช้ไม่ได้ ลองใช้ yourdomain.com เป็น SMTP Host แทน หรือตรวจสอบจาก Welcome Email ที่ AsiaGB ส่งให้ตอนเปิดบัญชี ซึ่งจะระบุ Mail Server Hostname ที่ถูกต้องไว้

5. ใช้ Gmail SMTP กับ WordPress (App Password)

ถ้าคุณต้องการใช้บัญชี Gmail หรือ Google Workspace ส่งอีเมล WordPress ทำได้ แต่ตั้งแต่ปี 2022 Google ไม่อนุญาตให้แอปภายนอก Login ด้วยรหัสผ่านปกติอีกต่อไป ต้องใช้ App Password แทน

เงื่อนไขที่ต้องมีก่อน

ขั้นตอนสร้าง App Password สำหรับ Gmail

  1. ไปที่ myaccount.google.com แล้ว Login
  2. คลิก Security ในเมนูด้านซ้าย
  3. เลื่อนหา "2-Step Verification" คลิกเข้าไป
  4. เลื่อนลงมาที่ด้านล่างสุด หา "App passwords"
  5. ในช่อง "Select app" เลือก "Mail"
  6. ในช่อง "Select device" เลือก "Other (Custom name)"
  7. ใส่ชื่อ เช่น "WordPress SMTP" แล้วกด Generate
  8. Google จะแสดงรหัส 16 หลัก เช่น abcd efgh ijkl mnop
  9. คัดลอกรหัสนี้ทันที (จะแสดงแค่ครั้งเดียวเท่านั้น)

กรอกค่า Gmail SMTP ใน WP Mail SMTP

SMTP Host:       smtp.gmail.com
SMTP Port:       587
Encryption:      TLS
Authentication:  เปิด
SMTP Username:   [email protected]
SMTP Password:   App Password 16 หลัก (ลบช่องว่างออก)

กด Save Settings แล้วทดสอบส่งอีเมลทันที Gmail SMTP อนุญาตให้ส่งได้ประมาณ 500 ฉบับต่อวันสำหรับบัญชีฟรี ถ้าต้องการส่งมากกว่านี้ควรพิจารณา Google Workspace (2,000 ฉบับ/วัน) หรือบริการ Email Delivery เฉพาะทาง

ข้อควรระวังเมื่อใช้ Gmail SMTP

คำแนะนำ: สำหรับเว็บไซต์ธุรกิจ แนะนำให้ใช้ DirectAdmin Email Hosting ของ AsiaGB (ข้อที่ 4) มากกว่า Gmail SMTP เพราะอีเมลจะแสดงโดเมนของคุณเอง ดูเป็นมืออาชีพกว่า และไม่มีขีดจำกัดการส่งจาก Google

6. ทดสอบส่งอีเมลจาก WordPress

การทดสอบอย่างละเอียดเป็นขั้นตอนสำคัญที่ไม่ควรข้ามไป แนะนำให้ทดสอบหลายกรณีเพื่อให้มั่นใจว่าระบบทำงานได้ในทุกสถานการณ์ที่เว็บไซต์ของคุณต้องการ

ทดสอบด้วย WP Mail SMTP Test Email

  1. ไปที่ WP Mail SMTP → Tools → Email Test
  2. ใส่อีเมลปลายทาง แนะนำทดสอบกับทั้ง Gmail และ Outlook เพื่อดูผลต่างกัน
  3. กด Send Test Email
  4. ตรวจสอบกล่อง Inbox และกล่อง Spam ของอีเมลปลายทาง
  5. ตรวจสอบ Email Log ใน WP Mail SMTP → Email Log (ถ้าเปิดใช้งาน)

ทดสอบฟังก์ชันจริงของ WordPress

หลังจากทดสอบ SMTP แล้ว ให้ทดสอบฟังก์ชันจริงของเว็บด้วย เพื่อให้มั่นใจทุก Plugin ใช้งาน SMTP ที่ตั้งไว้

ตรวจสอบ Email Header เพื่อยืนยัน Authentication

เมื่อได้รับอีเมลทดสอบ ให้ดู Email Header เพื่อตรวจสอบสถานะ Authentication ใน Gmail ทำได้โดยเปิดอีเมล → More (จุดสามจุด) → Show Original แล้วหาบรรทัดที่ขึ้นต้นด้วย Authentication-Results ควรเห็นค่าเหล่านี้

spf=pass     (SPF ผ่าน — อีเมลมาจาก IP ที่อนุญาต)
dkim=pass    (DKIM ผ่าน — ลายเซ็นถูกต้อง)
dmarc=pass   (DMARC ผ่าน — ทั้ง SPF และ DKIM ผ่าน)

ถ้ายังไม่ผ่านทั้งหมด ต้องตั้งค่า SPF และ DKIM เพิ่มเติมตามขั้นตอนถัดไป

7. ตั้งค่า SPF และ DKIM ป้องกันเมลตก Spam

แม้จะตั้งค่า SMTP สำเร็จแล้ว ถ้าโดเมนของคุณไม่มี SPF และ DKIM อีเมลก็ยังมีโอกาสตก Spam อยู่ โดยเฉพาะเมื่อส่งไปที่ Gmail และ Outlook ที่เข้มงวดมากในเรื่องนี้ ตั้งแต่ต้นปี 2024 Google บังคับให้โดเมนที่ส่งอีเมลปริมาณมากต้องมี SPF, DKIM และ DMARC จึงจะรับอีเมลเข้า Inbox ได้

SPF Record (Sender Policy Framework)

SPF คือ DNS TXT Record ที่บอกว่า IP หรือ Hostname ไหนได้รับอนุญาตให้ส่งอีเมลในนามโดเมนของคุณ Mail Server ปลายทางจะตรวจ SPF ก่อนรับอีเมล

วิธีตั้งค่า SPF บน DirectAdmin ของ AsiaGB

  1. Login DirectAdmin → DNS Management → Add Record
  2. Type: TXT
  3. Name: @ (หรือ yourdomain.com ถ้าระบบถาม)
  4. Value: ขึ้นอยู่กับว่าส่งผ่านอะไรบ้าง

ตัวอย่าง SPF Record สำหรับ DirectAdmin Email เท่านั้น

v=spf1 include:_spf.yourdomain.com ~all

ถ้าส่งผ่านทั้ง DirectAdmin Email และ Gmail ให้เพิ่ม include สำหรับ Google ด้วย

v=spf1 include:_spf.yourdomain.com include:_spf.google.com ~all

ความหมายของ Mechanism ต่างๆ ใน SPF

DKIM Record (DomainKeys Identified Mail)

DKIM คือลายเซ็นดิจิทัลที่ Mail Server ของคุณฝังไว้ในทุกอีเมลที่ส่งออก Mail Server ปลายทางตรวจสอบลายเซ็นนี้กับ Public Key ที่เก็บใน DNS เพื่อยืนยันว่าอีเมลไม่ถูกดัดแปลงระหว่างทาง

DirectAdmin ของ AsiaGB ตั้งค่า DKIM ได้ดังนี้

  1. Login DirectAdmin → E-Mail Manager → DomainKeys (DKIM)
  2. ถ้ามี Key อยู่แล้ว ดู Public Key ที่แสดง
  3. ถ้าไม่มีให้กด "Generate New Key"
  4. Copy ค่า TXT Record ที่ระบบสร้างให้
  5. เพิ่มเป็น TXT Record ใน DNS ที่ชื่อ default._domainkey.yourdomain.com

DMARC Record — ชั้นการป้องกันสุดท้าย

DMARC บอก Mail Server ปลายทางว่าควรทำอะไรกับอีเมลที่ SPF หรือ DKIM ไม่ผ่าน และส่งรายงานมาให้คุณทราบด้วย

DMARC Record เริ่มต้นที่ปลอดภัยที่สุด (Monitor Mode)

Name:  _dmarc.yourdomain.com
Type:  TXT
Value: v=DMARC1; p=none; rua=mailto:[email protected]

เมื่อมั่นใจว่า SPF และ DKIM ทำงานถูกต้องแล้ว (ดูจาก Email Header) ค่อยเปลี่ยนเป็น Quarantine หรือ Reject

v=DMARC1; p=quarantine; rua=mailto:[email protected]
# หรือ
v=DMARC1; p=reject; rua=mailto:[email protected]

ตรวจสอบ SPF/DKIM/DMARC ด้วยเครื่องมือออนไลน์

ใช้ MXToolbox Super Tool (mxtoolbox.com/SuperTool) ตรวจสอบ SPF, DKIM และ DMARC ได้ฟรี นอกจากนี้ยังมี Mail Tester (mail-tester.com) ที่ให้คะแนน Spam Score และแจ้งว่าต้องปรับปรุงอะไรอีก

8. แก้ปัญหา WordPress ส่งเมลไม่ได้ที่พบบ่อย

แม้จะตั้งค่า SMTP เรียบร้อยแล้ว บางครั้งยังอาจพบปัญหาได้ ต่อไปนี้คือปัญหาที่พบบ่อยที่สุดและวิธีแก้ไขที่ได้ผล

ปัญหา: Error "SMTP Error: Could not connect to SMTP host"

สาเหตุและวิธีแก้

ปัญหา: Error "SMTP Error: Password command failed"

ปัญหา: ส่งได้แต่อีเมลตก Spam

ปัญหา: WooCommerce Order Email ไม่ถูกส่ง

ปัญหา: Contact Form 7 ส่งได้แต่อีเมลไม่มาถึง

WP Mail SMTP Override wp_mail() ซึ่ง CF7 ใช้ ดังนั้นถ้าตั้งค่า WP Mail SMTP ถูกต้องแล้ว CF7 ควรทำงานได้ ตรวจสอบ

เครื่องมือ Debug SMTP

เปิด WP_DEBUG ใน wp-config.php เพื่อดู Error Log ที่ละเอียดกว่า

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

ดู Log ได้ที่ wp-content/debug.log หรือเปิด Email Log ใน WP Mail SMTP → Email Log ซึ่งจะแสดง Error Message ที่ชัดเจนกว่า

9. คำถามที่พบบ่อย (FAQ)

Q: ต้องซื้อ WP Mail SMTP Pro ไหม รุ่นฟรีพอไหม?

A: รุ่นฟรีเพียงพอสำหรับเว็บไซต์ส่วนใหญ่ รองรับ SMTP ทั่วไป, Gmail, Outlook และมี Email Test ทดสอบได้ทันที รุ่น Pro เพิ่ม Email Log ที่ละเอียด, Notification เมื่อส่งล้มเหลว, Smart Routing และ Priority Support จำเป็นสำหรับเว็บที่ส่งอีเมลปริมาณมากหรือต้องการ Reliability สูง

Q: DirectAdmin Email ของ AsiaGB มีขีดจำกัดการส่งกี่ฉบับต่อวัน?

A: Shared Hosting มีขีดจำกัดการส่งอีเมลต่อชั่วโมงเพื่อป้องกัน Spam ค่าที่แน่ชัดขึ้นอยู่กับ Plan ที่ใช้งาน สำหรับ Transactional Email ทั่วไป (Registration, Order, Contact Form) ปริมาณปกติไม่น่ามีปัญหา แต่ถ้าต้องส่ง Newsletter หรืออีเมลปริมาณมากแนะนำให้ใช้บริการ Email Delivery เฉพาะทาง

Q: ต้องมี SSL Certificate ก่อนตั้งค่า SMTP ไหม?

A: SSL Certificate ของเว็บไซต์ (HTTPS) และ SMTP Encryption เป็นคนละสิ่งกัน คุณตั้งค่า SMTP ได้โดยไม่ต้องมี SSL บนเว็บ แต่แนะนำให้ติดตั้ง SSL ด้วยอยู่แล้วเพื่อความปลอดภัยของเว็บโดยรวม

Q: Plugin ทางเลือก WP Mail SMTP ตัวอื่นที่ดีมีอะไรบ้าง?

A: มีทางเลือกที่ดี เช่น FluentSMTP (ฟรีทั้งหมด ไม่มีฟีเจอร์ติดเงิน), Post SMTP Mailer (Email Log ดีมาก), และ Easy WP SMTP แต่ WP Mail SMTP ยังคงเป็นตัวเลือกแนะนำเพราะมี Active Development และ Community ใหญ่

Q: ถ้าต้องส่ง Newsletter จำนวนมากควรใช้อะไร?

A: สำหรับ Newsletter ปริมาณมาก (หลักร้อยถึงหลักพันฉบับต่อครั้ง) แนะนำให้ใช้บริการเฉพาะทาง เช่น Mailchimp (ฟรีถึง 1,000 ฉบับ/เดือน) หรือ Brevo (SendinBlue) แทน ใช้ WordPress SMTP สำหรับ Transactional Email เท่านั้น เช่น Registration, Password Reset, Order Confirmation

เริ่มต้นใช้ WordPress Hosting ที่เชื่อถือได้วันนี้

AsiaGB มี Shared Hosting พร้อม DirectAdmin, SSD Storage, Uptime 99%, Email Hosting บนโดเมนของคุณ และ Support ทีมไทยในราคาเริ่มต้นเพียง 500 บาท/ปี

เริ่มต้นใช้งาน Hosting

ดูแพ็กเกจ Hosting ไทย ราคาถูกทั้งหมด →