ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home อีเมลส่งไม่ออกหรือไม่ได้รับ: วิธีตรวจสอบเบื้องต้น

อีเมลส่งไม่ออกหรือไม่ได้รับ: วิธีตรวจสอบเบื้องต้น

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

หลักสำคัญคือ อ่านข้อความตีกลับ (Bounce Message) ให้ละเอียด เพราะเกือบทุกครั้งเซิร์ฟเวอร์ปลายทางจะบอกเหตุผลไว้ในรหัสและข้อความ Error

สิ่งที่ต้องเตรียม

  • บัญชีอีเมลที่มีปัญหา และสิทธิ์เข้าเว็บเมลของบัญชีนั้น
  • สิทธิ์เข้า Control Panel (Plesk หรือ DirectAdmin) หรือระบบจัดการ DNS ของโดเมน หากต้องตรวจสอบหรือแก้ไข DNS
  • อีเมลภายนอกสำหรับทดสอบ เช่น Gmail หรือ Outlook.com ส่วนตัว
  • คอมพิวเตอร์ที่ใช้คำสั่ง nslookup หรือ dig ได้

ขั้นตอนที่ 1: แยกให้ได้ว่าปัญหาเกิดกับใคร

ก่อนแก้ไขอะไร ให้ตอบคำถามต่อไปนี้ เพราะจะช่วยตัดสาเหตุได้มาก

  • เกิดกับทุกบัญชีในโดเมน หรือเฉพาะบางบัญชี
  • ส่งไม่ออกไปยังทุกปลายทาง หรือเฉพาะบางโดเมน เช่น เฉพาะ Gmail
  • ใช้เว็บเมลแล้วเป็นเหมือนกันหรือไม่ ถ้าเว็บเมลปกติแต่โปรแกรมอีเมลมีปัญหา สาเหตุมักอยู่ที่การตั้งค่าโปรแกรม
  • เริ่มเกิดเมื่อไร และมีการเปลี่ยนแปลงอะไรในช่วงนั้น เช่น ย้ายโฮสต์ เปลี่ยน Name Server หรือแก้ DNS

ขั้นตอนที่ 2: กรณีส่งอีเมลไม่ออก

2.1 ทดสอบส่งจากเว็บเมล

เข้าเว็บเมลแล้วส่งอีเมลไปยังอีเมลภายนอก หากเว็บเมลส่งได้แต่โปรแกรมบนเครื่องส่งไม่ได้ ให้ตรวจการตั้งค่า SMTP ในโปรแกรม ได้แก่ ชื่อเซิร์ฟเวอร์ พอร์ต 465 (SSL/TLS) หรือ 587 (STARTTLS) และต้องเปิดการยืนยันตัวตนด้วย Username ที่เป็นอีเมลเต็ม ดูตัวอย่างการตั้งค่าได้ที่ ตั้งค่าอีเมลบน Mozilla Thunderbird แบบ IMAP

หมายเหตุ: ผู้ให้บริการอินเทอร์เน็ตและผู้ให้บริการคลาวด์จำนวนมากบล็อกพอร์ต 25 ขาออกจากเครื่องลูกข่าย โปรแกรมอีเมลจึงควรใช้พอร์ต 465 หรือ 587 สำหรับส่งเมล ไม่ใช่พอร์ต 25

2.2 ทดสอบว่าเข้าถึงพอร์ต SMTP ได้

บน Windows เปิด PowerShell แล้วรัน

Test-NetConnection mail.example.com -Port 587

บน macOS หรือ Linux ใช้คำสั่งต่อไปนี้ เพื่อดูว่าเซิร์ฟเวอร์ตอบกลับและใบรับรองถูกต้อง

openssl s_client -connect mail.example.com:465 -brief

ผลที่ปกติจะเห็นบรรทัด CONNECTION ESTABLISHED และข้อความต้อนรับจากเซิร์ฟเวอร์ที่ขึ้นต้นด้วย 220 กด Ctrl+C เพื่อออก หากเชื่อมต่อไม่ได้เลย ให้ลองจากเครือข่ายอื่นเพื่อตัดปัญหาการบล็อกพอร์ตในเครือข่ายของคุณ

2.3 อ่านข้อความตีกลับ

หากส่งได้แต่ได้รับอีเมลตีกลับ (มักมาจาก Mail Delivery System หรือ MAILER-DAEMON) ให้ดูรหัสสถานะในเนื้อหา ตารางต่อไปนี้เป็นความหมายที่พบบ่อย ข้อความจริงแตกต่างกันไปตามเซิร์ฟเวอร์ปลายทาง

รหัสความหมายโดยทั่วไปสิ่งที่ควรทำ
550 5.1.1ไม่มีผู้รับรายนี้ในระบบปลายทางตรวจการสะกดที่อยู่อีเมลผู้รับ
552 หรือ 452กล่องจดหมายผู้รับเต็ม หรือไฟล์แนบใหญ่เกินลดขนาดไฟล์แนบ หรือแจ้งผู้รับ
550 5.7.1 หรือ 554ถูกปฏิเสธด้วยนโยบาย เช่น IP ติด Blacklist หรือไม่ผ่าน SPF/DMARCตรวจ SPF, DKIM, DMARC และสถานะ Blacklist
421 หรือ 4xx อื่น ๆปฏิเสธชั่วคราว เซิร์ฟเวอร์จะลองส่งซ้ำเองรอ และตรวจสอบอีกครั้งภายหลัง

รหัสที่ขึ้นต้นด้วย 5 เป็นความล้มเหลวถาวร ต้องแก้สาเหตุก่อนส่งใหม่ ส่วนรหัสที่ขึ้นต้นด้วย 4 เป็นความล้มเหลวชั่วคราว

2.4 ตรวจ SPF, DKIM และ DMARC ของโดเมนผู้ส่ง

ผู้ให้บริการอย่าง Gmail และ Microsoft ตรวจสอบระเบียนเหล่านี้อย่างเข้มงวด หากไม่มีหรือตั้งผิด อีเมลอาจถูกปฏิเสธหรือเข้า Spam ตรวจสอบได้ด้วยคำสั่ง

dig +short TXT example.com
dig +short TXT _dmarc.example.com

ควรพบระเบียนที่ขึ้นต้นด้วย v=spf1 เพียงระเบียนเดียว และระเบียน v=DMARC1 ที่ _dmarc วิธีตั้งค่าอย่างละเอียดอยู่ในคู่มือ ตั้งค่า SPF, DKIM และ DMARC เพื่อลดโอกาสอีเมลเข้า Spam

ขั้นตอนที่ 3: กรณีไม่ได้รับอีเมล

3.1 ตรวจโฟลเดอร์ Spam และตัวกรอง

เข้าเว็บเมลแล้วตรวจโฟลเดอร์ Spam หรือ Junk รวมถึงกฎกรองอีเมล (Filters หรือ Rules) และการส่งต่ออัตโนมัติ (Forwarding) ที่อาจย้ายหรือลบอีเมลก่อนถึง Inbox ถ้าใช้โปรแกรมอีเมลแบบ POP3 บนเครื่องอื่นอยู่ด้วย อีเมลอาจถูกดาวน์โหลดและลบออกจากเซิร์ฟเวอร์ไปแล้ว

3.2 ตรวจพื้นที่กล่องจดหมาย

หากกล่องจดหมายเต็มโควตา เซิร์ฟเวอร์จะปฏิเสธอีเมลใหม่ และผู้ส่งจะได้รับข้อความตีกลับ ตรวจการใช้พื้นที่ได้ที่เว็บเมล หรือใน Control Panel ที่หน้ารายการบัญชีอีเมล ให้ลบอีเมลที่มีไฟล์แนบขนาดใหญ่ และล้างโฟลเดอร์ Trash เพื่อคืนพื้นที่

3.3 ตรวจ MX Record

MX Record บอกเซิร์ฟเวอร์ทั่วโลกว่าต้องส่งอีเมลของโดเมนนี้ไปที่ใด หลังย้ายโฮสต์หรือเปลี่ยน Name Server ปัญหาที่พบบ่อยที่สุดคือ MX ยังชี้ไปที่เดิม ตรวจสอบด้วย

nslookup -type=mx example.com

หรือ

dig +short MX example.com

ผลลัพธ์ควรแสดงชื่อเซิร์ฟเวอร์อีเมลที่ถูกต้อง เช่น 10 mail.example.com. จากนั้นตรวจต่อว่าชื่อนั้นชี้ไปที่ IP ของเซิร์ฟเวอร์อีเมลจริง

dig +short A mail.example.com

หากเพิ่งแก้ไข DNS ต้องรอให้ค่า TTL เดิมหมดอายุก่อน ซึ่งอาจใช้เวลาตั้งแต่ไม่กี่นาทีจนถึงหลายชั่วโมง ดูเพิ่มเติมที่ ตรวจสอบ DNS ด้วย nslookup และ dig

3.4 ขอให้ผู้ส่งส่งข้อความตีกลับมาให้

หากผู้ส่งได้รับข้อความตีกลับ ให้ขอสำเนาทั้งฉบับ เพราะข้อความนั้นจะบอกว่าเซิร์ฟเวอร์ของผู้ส่งพยายามส่งไปที่ใด และถูกปฏิเสธด้วยเหตุผลอะไร หากผู้ส่งไม่ได้รับข้อความตีกลับเลยและ MX ถูกต้อง อีเมลอาจค้างอยู่ในคิวของฝั่งผู้ส่ง หรือถูกระบบกรองของฝั่งผู้รับกักไว้

ขั้นตอนที่ 4: สำหรับผู้ดูแลเซิร์ฟเวอร์ของตนเอง

หากคุณดูแล Cloud Server ที่ติดตั้ง Mail Server เอง (เช่น Postfix) สามารถดูคิวและ Log เพื่อหาสาเหตุได้ ดูคิวอีเมลที่ค้างด้วย

sudo postqueue -p

ค้นหาประวัติการส่งของที่อยู่อีเมลที่สนใจใน Log บน Ubuntu

sudo grep "[email protected]" /var/log/mail.log | tail -n 20

บน AlmaLinux หรือ Rocky Linux ไฟล์ Log อยู่ที่ /var/log/maillog หรือดูผ่าน journald ด้วย

sudo journalctl -u postfix --since "1 hour ago"

ในบรรทัด Log ให้สังเกตค่า status=sent, status=deferred หรือ status=bounced ซึ่งจะมีเหตุผลจากเซิร์ฟเวอร์ปลายทางต่อท้าย นอกจากนี้ IP ของเซิร์ฟเวอร์ที่ส่งอีเมลควรมี Reverse DNS (PTR) ที่ชี้กลับมาเป็นชื่อโฮสต์ของ Mail Server ซึ่งต้องตั้งค่าจากฝั่งเจ้าของ IP

ตรวจสอบผลลัพธ์

  • ส่งอีเมลจากบัญชีของคุณไปยัง Gmail แล้วเปิดอีเมลนั้น คลิกเมนูจุดสามจุด เลือก Show original (แสดงต้นฉบับ) ตรวจว่า SPF, DKIM และ DMARC แสดงผล PASS
  • ส่งอีเมลจาก Gmail กลับมายังบัญชีของคุณ และตรวจว่าเข้า Inbox ภายในไม่กี่นาที
  • ทดสอบทั้งจากเว็บเมลและโปรแกรมอีเมลบนเครื่อง

ปัญหาที่พบบ่อย

อีเมลเข้า Spam ของผู้รับ แม้ส่งถึง

มักเกิดจาก SPF ไม่ครอบคลุมเซิร์ฟเวอร์ที่ใช้ส่งจริง ไม่มี DKIM หรือเนื้อหามีลักษณะคล้าย Spam เช่น มีแต่ลิงก์หรือรูปภาพ ให้แก้ DNS ตามคู่มือ SPF, DKIM, DMARC และหลีกเลี่ยงการส่งอีเมลจำนวนมากจากบัญชีอีเมลปกติ

ส่งจากเว็บไซต์ (ฟอร์มติดต่อ) ไม่ถึง แต่ส่งจากโปรแกรมอีเมลได้

เว็บไซต์ที่ส่งด้วยฟังก์ชัน mail ของ PHP มักไม่ผ่าน SPF หรือ DMARC ของโดเมน แนะนำให้ตั้งค่าเว็บไซต์ให้ส่งผ่าน SMTP ที่ยืนยันตัวตน ดู ตั้งค่า WordPress ให้ส่งอีเมลผ่าน SMTP

รับอีเมลจากบางโดเมนไม่ได้หลังย้ายโฮสต์

เซิร์ฟเวอร์ของผู้ส่งบางรายเก็บผล DNS ไว้ตาม TTL หรือโดเมนมี MX ค้างอยู่ทั้งของเก่าและใหม่ ตรวจว่า MX มีเฉพาะปลายทางที่ถูกต้อง และรอให้ TTL หมดอายุ

IP ของเซิร์ฟเวอร์ติด Blacklist

หากข้อความตีกลับระบุชื่อ Blacklist เช่น Spamhaus ให้หาสาเหตุก่อน เช่น บัญชีอีเมลถูกขโมยรหัสผ่านแล้วถูกใช้ส่ง Spam หรือเว็บไซต์ถูกแฮก ให้เปลี่ยนรหัสผ่านและปิดช่องโหว่ จากนั้นจึงยื่นขอถอดรายชื่อตามขั้นตอนของ Blacklist นั้น

หากตรวจสอบตามขั้นตอนแล้วยังไม่พบสาเหตุ ให้ติดต่อทีมซัพพอร์ต THAI DATA CLOUD ที่ https://thaidata.cloud/contact/ พร้อมแนบข้อความตีกลับทั้งฉบับ ที่อยู่อีเมลผู้ส่งและผู้รับ และวันเวลาที่ส่ง จะช่วยให้ตรวจสอบจาก Log ได้รวดเร็วขึ้น

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security