ตั้งค่า WordPress ให้ส่งอีเมลผ่าน SMTP
โดยค่าเริ่มต้น WordPress ส่งอีเมล เช่น อีเมลรีเซ็ตรหัสผ่าน อีเมลแจ้งเตือนคำสั่งซื้อของ WooCommerce หรืออีเมลจากฟอร์มติดต่อ ผ่านฟังก์ชัน mail() ของ PHP ซึ่งส่งโดยไม่มีการยืนยันตัวตน อีเมลจึงมักไม่ผ่านการตรวจ SPF และ DMARC ของผู้รับ ทำให้เข้า Spam หรือถูกปฏิเสธ และบางเซิร์ฟเวอร์ไม่ได้ติดตั้ง Mail Server ไว้เลย อีเมลจึงไม่ถูกส่งออกไปเลย
ทางแก้ที่แนะนำคือให้ WordPress ส่งอีเมลผ่าน SMTP ของบัญชีอีเมลจริงที่ยืนยันตัวตนด้วยชื่อผู้ใช้และรหัสผ่าน คู่มือนี้ใช้ปลั๊กอิน WP Mail SMTP เป็นตัวอย่าง และกล่าวถึง FluentSMTP ซึ่งเป็นทางเลือกฟรีอีกตัว
สิ่งที่ต้องเตรียม
- สิทธิ์ Administrator ใน WordPress
- บัญชีอีเมลที่จะใช้ส่ง เช่น
[email protected]พร้อมรหัสผ่าน ควรสร้างบัญชีเฉพาะสำหรับเว็บไซต์ ดูวิธีสร้างที่ สร้างบัญชีอีเมลบน Plesk หรือ บน DirectAdmin - ชื่อเซิร์ฟเวอร์ SMTP ตามที่ผู้ให้บริการอีเมลแจ้ง ในคู่มือนี้ใช้
mail.example.comเป็นตัวอย่าง - SPF Record ของโดเมนที่ครอบคลุมเซิร์ฟเวอร์ SMTP ที่ใช้ ดู ตั้งค่า SPF, DKIM และ DMARC
ขั้นตอนที่ 1: ติดตั้งปลั๊กอิน
- ใน
/wp-adminไปที่ Plugins > Add New Plugin - ค้นหา WP Mail SMTP (ผู้พัฒนาคือ WP Mail SMTP by WPForms)
- คลิก Install Now แล้วคลิก Activate
หลังเปิดใช้งาน ปลั๊กอินจะเปิด Setup Wizard ให้ สามารถใช้ Wizard หรือกดออกแล้วไปตั้งค่าที่เมนู WP Mail SMTP > Settings ก็ได้ ติดตั้งปลั๊กอินส่งอีเมลเพียงตัวเดียว เพราะหลายตัวพร้อมกันจะขัดแย้งกัน
ขั้นตอนที่ 2: ตั้งค่า Mailer เป็น Other SMTP
ในหน้า WP Mail SMTP > Settings แท็บ General กำหนดดังนี้
- From Email:
[email protected]ต้องเป็นอีเมลเดียวกับบัญชีที่ใช้ยืนยันตัวตน ติ๊ก Force From Email เพื่อให้ปลั๊กอินอื่นใช้อีเมลนี้เสมอ - From Name: ชื่อที่ผู้รับเห็น เช่น ชื่อบริษัท
- Mailer: เลือก Other SMTP
- SMTP Host:
mail.example.com - Encryption: SSL คู่กับ SMTP Port
465หรือ TLS คู่กับพอร์ต587 - Auto TLS: เปิดไว้
- Authentication: เปิด
- SMTP Username: ที่อยู่อีเมลเต็ม
- SMTP Password: รหัสผ่านของบัญชีอีเมล
คลิก Save Settings
ขั้นตอนที่ 3 (แนะนำ): เก็บรหัสผ่านไว้ใน wp-config.php
ปลั๊กอินเก็บรหัสผ่านไว้ในฐานข้อมูล ถ้าต้องการไม่ให้รหัสผ่านอยู่ในฐานข้อมูล WP Mail SMTP รองรับการกำหนดค่าด้วยค่าคงที่ใน wp-config.php เพิ่มบรรทัดต่อไปนี้เหนือบรรทัด /* That's all, stop editing! */
define( 'WPMS_ON', true );
define( 'WPMS_MAILER', 'smtp' );
define( 'WPMS_SMTP_HOST', 'mail.example.com' );
define( 'WPMS_SMTP_PORT', 465 );
define( 'WPMS_SSL', 'ssl' );
define( 'WPMS_SMTP_AUTH', true );
define( 'WPMS_SMTP_USER', '[email protected]' );
define( 'WPMS_SMTP_PASS', 'รหัสผ่านอีเมล' );
define( 'WPMS_SMTP_AUTOTLS', true );
หากใช้พอร์ต 587 ให้เปลี่ยน WPMS_SMTP_PORT เป็น 587 และ WPMS_SSL เป็น 'tls' เมื่อใช้ค่าคงที่แล้ว ช่องในหน้า Settings จะถูกล็อกและแสดงว่าค่ามาจาก wp-config.php
ขั้นตอนที่ 4: ส่งอีเมลทดสอบ
- ไปที่ WP Mail SMTP > Tools แท็บ Email Test
- กรอกอีเมลภายนอกของคุณในช่อง Send To เช่น บัญชี Gmail
- คลิก Send Email
หากสำเร็จ จะมีข้อความว่าส่งอีเมลทดสอบแล้ว และอีเมลจะเข้า Inbox ของผู้รับ หากล้มเหลว ปลั๊กอินจะแสดง Debug log ซึ่งบอกสาเหตุ เช่น เชื่อมต่อไม่ได้ หรือยืนยันตัวตนไม่ผ่าน
กรณีใช้ Microsoft 365 หรือ Google Workspace
บริการทั้งสองกำลังเลิกใช้หรือจำกัดการส่งอีเมลผ่าน SMTP ด้วยรหัสผ่านอย่างเดียว (Basic authentication) จึงควรใช้ Mailer ที่เชื่อมต่อแบบ OAuth ของผู้ให้บริการนั้นแทน
- ใน WP Mail SMTP เลือก Mailer Google / Gmail แล้วสร้าง OAuth Client ใน Google Cloud Console ตามคำแนะนำของปลั๊กอิน ส่วน Mailer Microsoft 365 / Outlook ในบางเวอร์ชันของปลั๊กอินอาจต้องใช้รุ่น Pro
- ปลั๊กอิน FluentSMTP (ฟรี) มีตัวเลือกเชื่อมต่อ Gmail/Google Workspace และ Outlook/Microsoft 365 แบบ OAuth
ขั้นตอนการสร้าง OAuth App เปลี่ยนแปลงตามหน้าจอของผู้ให้บริการ ให้ทำตามเอกสารของปลั๊กอินเวอร์ชันที่ติดตั้ง
ตรวจสอบผลลัพธ์
- เปิดอีเมลทดสอบใน Gmail คลิกจุดสามจุด แล้วเลือก Show original ตรวจว่า SPF และ DMARC แสดง
PASS - ทดสอบการทำงานจริง เช่น ส่งฟอร์มติดต่อ หรือกดลืมรหัสผ่านที่หน้าเข้าสู่ระบบ
- ถ้าต้องการเก็บประวัติการส่ง FluentSMTP มี Email Logging ในรุ่นฟรี ส่วน WP Mail SMTP มีในรุ่น Pro
ปัญหาที่พบบ่อย
Could not connect to SMTP host หรือ Connection timed out
เซิร์ฟเวอร์ของเว็บเชื่อมต่อไปยัง SMTP ไม่ได้ ทดสอบจากเซิร์ฟเวอร์เว็บด้วยคำสั่ง
nc -vz mail.example.com 465
หากไม่สำเร็จ ให้ตรวจ Firewall ขาออกของเซิร์ฟเวอร์ หากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เปิดพอร์ตนั้นเพิ่มด้วย และหลีกเลี่ยงพอร์ต 25 ซึ่งมักถูกบล็อก บน AlmaLinux หรือ Rocky Linux ที่เปิด SELinux ต้องอนุญาตให้ Web Server เชื่อมต่อพอร์ต SMTP ด้วย
sudo setsebool -P httpd_can_sendmail on
SMTP Error: Could not authenticate
ชื่อผู้ใช้หรือรหัสผ่านผิด ตรวจว่า Username เป็นอีเมลเต็ม และลองเข้าสู่ระบบเว็บเมลด้วยรหัสผ่านเดียวกัน ถ้าบัญชีเปิด MFA อยู่ (Microsoft 365, Google) ให้ใช้วิธี OAuth ตามหัวข้อด้านบน
ส่งได้ แต่ผู้รับได้เข้า Spam
ตรวจว่า From Email ตรงกับบัญชีที่ยืนยันตัวตน และ SPF ของโดเมนครอบคลุมเซิร์ฟเวอร์ SMTP ที่ใช้ ตั้งค่า DKIM และ DMARC เพิ่มเติม ดูแนวทางตรวจสอบเพิ่มเติมที่ อีเมลส่งไม่ออกหรือไม่ได้รับ: วิธีตรวจสอบเบื้องต้น
certificate verify failed
SMTP Host ที่กรอกไม่ตรงกับชื่อในใบรับรอง SSL ของเซิร์ฟเวอร์อีเมล ให้ใช้ชื่อโฮสต์ที่ผู้ให้บริการอีเมลแจ้ง แทนการใช้ IP หรือชื่อโดเมนอื่น
หากตั้งค่าตามขั้นตอนแล้วยังส่งอีเมลไม่ได้ ติดต่อทีมซัพพอร์ต THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ พร้อมแนบข้อความ Debug จากหน้า Email Test (ลบรหัสผ่านออกก่อนส่ง)
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


