อีเมลส่งไม่ได้ รับไม่ได้ ตรวจสอบอะไรบ้าง แก้ยังไงให้ตรงจุด
อีเมลยังคงเป็นช่องทางสื่อสารหลักของธุรกิจ เมื่อ E-mail Server มีปัญหา ผลกระทบจึงลามถึงทั้งองค์กรแทบจะทันที ลูกค้าส่งอีเมลมาแล้วไม่ได้รับ หรือส่งอีเมลออกไปแล้วเด้งกลับ ล้วนเป็นเรื่องที่ต้องแก้ให้เร็วที่สุด
บทความนี้จะพาคุณตรวจสอบปัญหา E-mail Server อย่างเป็นระบบ ครอบคลุมทุกสาเหตุที่พบบ่อย ไม่ว่าจะใช้ VPS หรือ Dedicated Server ของ DriteStudio ก็ใช้แนวทางเดียวกันได้
เช็คการตั้งค่า SMTP IMAP และ POP3
SMTP สำหรับส่งอีเมล
SMTP เป็นโปรโตคอลหลักในการส่งอีเมล ปัญหาที่เจอบ่อยที่สุดคือตั้งค่า Port ไม่ถูกต้อง โดยทั่วไป SMTP ใช้ Port 25 สำหรับการรับส่งระหว่างเซิร์ฟเวอร์ Port 587 สำหรับ Submission พร้อม STARTTLS และ Port 465 สำหรับ SMTPS ที่เข้ารหัสโดยตรง
ทดสอบการเชื่อมต่อ SMTP ด้วย telnet เพื่อดูว่า Service ทำงานปกติหรือไม่
telnet smtp.example.com 25
ถ้าเชื่อมต่อสำเร็จจะเห็นข้อความประมาณนี้
220 smtp.example.com ESMTP Postfix
ทดสอบส่งอีเมลผ่าน telnet เพื่อ Debug เพิ่มเติม
EHLO mydomain.com
MAIL FROM:<[email protected]>
RCPT TO:<[email protected]>
DATA
Subject: Test Email
This is a test.
.
QUIT
IMAP และ POP3 สำหรับรับอีเมล
IMAP ใช้ Port 143 แบบปกติ หรือ Port 993 แบบเข้ารหัส ส่วน POP3 ใช้ Port 110 หรือ 995 ตามลำดับ ทดสอบการเชื่อมต่อได้เช่นเดียวกัน
# ทดสอบ IMAP
telnet mail.example.com 143
# ทดสอบ IMAP over SSL
openssl s_client -connect mail.example.com:993
# ทดสอบ POP3
telnet mail.example.com 110
ตรวจสอบ DNS Record ที่เกี่ยวข้องกับอีเมล
MX Record
MX Record เป็นหัวใจของระบบอีเมล มันบอกให้ระบบรู้ว่าอีเมลที่ส่งมาหาโดเมนของคุณควรไปที่เซิร์ฟเวอร์ไหน ตรวจสอบด้วยคำสั่ง
# ตรวจสอบ MX Record ด้วย dig
dig MX example.com +short
# หรือใช้ nslookup
nslookup -type=MX example.com
SPF Record
SPF ช่วยป้องกันการปลอมแปลงอีเมล โดยบอกให้เซิร์ฟเวอร์ปลายทางรู้ว่า IP ไหนได้รับอนุญาตให้ส่งอีเมลแทนโดเมนของคุณ ตรวจสอบและตั้งค่าดังนี้
# ตรวจสอบ SPF Record
dig TXT example.com +short
ตัวอย่าง SPF Record ที่ถูกต้อง
v=spf1 ip4:203.0.113.0/24 include:_spf.google.com ~all
DKIM และ DMARC
DKIM ใช้ลายเซ็นดิจิทัลยืนยันว่าอีเมลไม่ถูกแก้ไขระหว่างทาง ส่วน DMARC กำหนดนโยบายว่าจะจัดการอย่างไรกับอีเมลที่ไม่ผ่าน SPF และ DKIM
# ตรวจสอบ DKIM Record
dig TXT default._domainkey.example.com +short
# ตรวจสอบ DMARC Record
dig TXT _dmarc.example.com +short
ตัวอย่าง DMARC Record
v=DMARC1; p=quarantine; rua=mailto:[email protected]; pct=100
ตรวจสอบ SSL/TLS Certificate
Certificate หมดอายุเป็นสาเหตุคลาสสิกที่ทำให้อีเมลเชื่อมต่อไม่ได้ ตรวจสอบด้วยคำสั่ง openssl
# ตรวจสอบ Certificate ของ SMTP
openssl s_client -connect mail.example.com:465 -quiet 2>/dev/null | openssl x509 -noout -dates
# ตรวจสอบ Certificate ของ IMAP
openssl s_client -connect mail.example.com:993 -quiet 2>/dev/null | openssl x509 -noout -dates
การดูแลความปลอดภัยของ Certificate อย่างสม่ำเสมอคือสิ่งที่ DriteStudio แนะนำเสมอ
ตรวจสอบ Firewall และ Network
E-mail Server ต้องการ Port หลายตัว ตรวจสอบว่า Firewall ไม่ได้บล็อก Port เหล่านี้
# ตรวจสอบ Port ที่เปิดอยู่
ss -tlnp | grep -E ':(25|587|465|143|993|110|995)'
# เปิด Port บน firewalld
sudo firewall-cmd --permanent --add-service=smtp
sudo firewall-cmd --permanent --add-port=587/tcp
sudo firewall-cmd --permanent --add-port=465/tcp
sudo firewall-cmd --permanent --add-port=993/tcp
sudo firewall-cmd --reload
IP ถูก Blacklist
ถ้าอีเมลถูกปฏิเสธโดยเซิร์ฟเวอร์ปลายทาง อาจเป็นเพราะ IP ถูกขึ้น Blacklist ตรวจสอบได้ที่ mxtoolbox.com หรือใช้คำสั่ง
# ตรวจสอบ Reverse DNS
dig -x 203.0.113.10 +short
# ตรวจสอบ Blacklist ผ่าน DNS
nslookup 10.113.0.203.zen.spamhaus.org
อ่าน Log ของ Mail Server
Log คือเพื่อนที่ดีที่สุดในการ Debug ปัญหาอีเมล
# ดู Log ของ Postfix แบบ Real-time
sudo tail -f /var/log/mail.log
# ค้นหา Error ในช่วงวันนี้
sudo grep "error\|reject\|warning" /var/log/mail.log | tail -50
# ดู Mail Queue ที่ค้างอยู่
sudo postqueue -p
# ลองส่ง Queue ใหม่
sudo postqueue -f
Error Code ที่พบบ่อย ได้แก่ 550 (ผู้รับไม่มีอยู่หรือถูกปฏิเสธ) 553 (Relay ไม่ได้รับอนุญาต) 421 (เซิร์ฟเวอร์ไม่พร้อมชั่วคราว) และ 452 (พื้นที่เก็บข้อมูลไม่พอ)
ตรวจสอบพื้นที่ว่างและทรัพยากร
# ตรวจสอบพื้นที่ Disk
df -h
# ตรวจสอบขนาด Maildir
du -sh /var/mail/*
# ตรวจสอบ RAM และ CPU
free -h && uptime
ตั้งค่า Postfix เบื้องต้น
สำหรับโฮสติ้งที่มีบริการจัดการให้ การอัปเดตมักดำเนินการโดยผู้ให้บริการ แต่สำหรับเซิร์ฟเวอร์ที่จัดการเอง ตรวจสอบ Config หลักของ Postfix
# ตรวจสอบ Config ปัจจุบัน
sudo postconf -n
# Config ที่สำคัญใน /etc/postfix/main.cf
sudo grep -E "^(myhostname|mydomain|myorigin|inet_interfaces|mydestination)" /etc/postfix/main.cf
# Restart Postfix หลังแก้ Config
sudo systemctl restart postfix
sudo systemctl status postfix
คำถามที่พบบ่อย (FAQ)
ส่งอีเมลแล้วเข้า Spam ทำอย่างไร?
ตรวจสอบ SPF, DKIM และ DMARC ให้ครบทั้งสามรายการ ตรวจสอบว่า IP ไม่ได้อยู่ใน Blacklist และเนื้อหาอีเมลไม่มีลักษณะ Spam เช่น ใช้ตัวพิมพ์ใหญ่ทั้งหมดหรือมีลิงก์น่าสงสัย
ควรใช้ Port ไหนสำหรับ SMTP?
แนะนำใช้ Port 587 พร้อม STARTTLS สำหรับการส่งอีเมลจาก Client เพราะปลอดภัยและรองรับโดยผู้ให้บริการส่วนใหญ่ หลีกเลี่ยง Port 25 สำหรับ Client เนื่องจาก ISP หลายรายบล็อก Port นี้
อีเมลเด้งกลับพร้อมข้อความ Relay Access Denied หมายถึงอะไร?
หมายความว่าเซิร์ฟเวอร์ไม่อนุญาตให้ส่งอีเมลต่อไปยังโดเมนปลายทาง มักเกิดจากการตั้งค่า Authentication ไม่ถูกต้อง หรือ IP ของผู้ส่งไม่อยู่ในรายการที่อนุญาต
การแก้ปัญหา E-mail Server ต้องตรวจสอบอย่างเป็นระบบ ตั้งแต่ SMTP, DNS, SSL/TLS ไปจนถึง Firewall และ Log ยิ่งมีความเข้าใจที่ดี ยิ่งแก้ได้เร็ว สำหรับองค์กรที่ต้องการระบบอีเมลที่เสถียร Colocation ของ DriteStudio ช่วยให้มั่นใจว่าเซิร์ฟเวอร์อีเมลทำงานในสภาพแวดล้อมที่เหมาะสม พร้อมเครือข่ายคุณภาพสูง ติดต่อทีมงาน DriteStudio เพื่อรับคำปรึกษาได้เลย