คำตอบสั้น ๆ: อ่านข้อความอีเมลตีกลับให้เป็น แยก Soft Bounce กับ Hard Bounce และรู้ความหมายของ SMTP Error Code ที่พบบ่อย พร้อมวิธีแก้ไขในแต่ละกรณี
คู่มือนี้อธิบาย SMTP Error Code ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
เมื่อส่งอีเมลออกไปแล้วได้รับข้อความตอบกลับจากระบบ เช่น "Mail Delivery Failed", "Undeliverable" หรือ "Delivery Status Notification (Failure)" แปลว่าอีเมลฉบับนั้นถูกตีกลับ (Bounce) ข้อความตีกลับนี้เรียกอีกชื่อว่า NDR (Non-Delivery Report) และทุกฉบับมีรหัส SMTP Error Code ที่บอกสาเหตุไว้ชัดเจน หากอ่านรหัสเป็น จะรู้ทันทีว่าปัญหาอยู่ที่ฝั่งผู้ส่ง ฝั่งผู้รับ หรือเป็นแค่ปัญหาชั่วคราวที่ระบบจะลองส่งซ้ำเอง
คู่มือนี้อธิบายโครงสร้างของอีเมลตีกลับ ความหมายของรหัสที่พบบ่อย และวิธีแก้ไขในแต่ละกรณี ใช้ได้กับอีเมลบน Web Hosting (Plesk, DirectAdmin), Cloud Server ที่ติดตั้ง Mail Server เอง รวมถึง Microsoft 365 และ Google Workspace เพราะรหัสเหล่านี้เป็นมาตรฐานเดียวกันตาม RFC 5321 และ RFC 3463
สิ่งที่ต้องเตรียม (SMTP Error Code)
- ข้อความตีกลับฉบับเต็ม อย่าเพิ่งลบทิ้ง และควรเปิดดูแบบเต็ม ไม่ใช่เฉพาะบรรทัดแรก
- หากดูแล Mail Server เอง: สิทธิ์ root หรือ
sudoเพื่ออ่าน Log ของ Postfix หรือ Exim - สิทธิ์แก้ไข DNS ของโดเมน หากสาเหตุเกี่ยวกับ SPF, DKIM, DMARC หรือ PTR
ขั้นตอนที่ 1: หาบรรทัดสำคัญในอีเมลตีกลับ (SMTP Error Code)
ข้อความตีกลับมักขึ้นต้นด้วยคำอธิบายทั่วไปที่ไม่ค่อยมีประโยชน์ ให้เลื่อนลงไปหาส่วนที่เป็นรายละเอียดทางเทคนิค ซึ่งหน้าตาจะคล้ายตัวอย่างนี้
Reporting-MTA: dns; mail.example.com
Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.1.1
Remote-MTA: dns; mx1.example.net
Diagnostic-Code: smtp; 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in virtual mailbox table
บรรทัดที่ต้องอ่านมีดังนี้
- Final-Recipient ที่อยู่ปลายทางที่ส่งไม่ถึง ตรวจดูก่อนเลยว่าพิมพ์ถูกหรือไม่
- Action ถ้าเป็น
failedคือส่งไม่สำเร็จถาวร ถ้าเป็นdelayedคือยังรอส่งซ้ำอยู่ - Remote-MTA เซิร์ฟเวอร์ที่ปฏิเสธอีเมล บอกได้ว่าเป็นฝั่งผู้รับหรือเซิร์ฟเวอร์ของเราเอง
- Diagnostic-Code ข้อความจริงจากเซิร์ฟเวอร์ปลายทาง ประกอบด้วยรหัสสามหลัก รหัสแบบขยาย และคำอธิบาย ส่วนนี้สำคัญที่สุด
ขั้นตอนที่ 2: แยกให้ออกว่าเป็นปัญหาชั่วคราวหรือถาวร (SMTP Error Code)
ตัวเลขหลักแรกของรหัสบอกประเภทของปัญหา
| หลักแรก | ความหมาย | สิ่งที่ระบบทำต่อ |
|---|---|---|
| 2xx | สำเร็จ เช่น 250 OK | ส่งถึงเซิร์ฟเวอร์ปลายทางแล้ว |
| 4xx | ล้มเหลวชั่วคราว (Soft Bounce) | เซิร์ฟเวอร์ผู้ส่งเก็บไว้ในคิวและลองส่งซ้ำ Postfix มีค่าเริ่มต้นให้ลองซ้ำได้นานถึง 5 วัน ระหว่างนั้นผู้ส่งอาจได้ข้อความแจ้งว่า "delayed" |
| 5xx | ล้มเหลวถาวร (Hard Bounce) | ไม่ลองซ้ำ ต้องแก้สาเหตุก่อนแล้วส่งใหม่เอง |
รหัสแบบขยาย (Enhanced Status Code) เช่น 5.1.1 อ่านเป็นสามส่วน ส่วนแรกคือชั่วคราวหรือถาวรเหมือนเดิม ส่วนที่สองคือหมวด: 1 เกี่ยวกับที่อยู่ผู้รับ, 2 เกี่ยวกับกล่องจดหมาย, 3 เกี่ยวกับระบบเมลปลายทาง, 4 เกี่ยวกับเครือข่ายและการส่งต่อ, 5 เกี่ยวกับโปรโตคอล และ 7 เกี่ยวกับความปลอดภัยหรือนโยบาย ส่วนที่สามคือรายละเอียดภายในหมวดนั้น
ขั้นตอนที่ 3: เทียบรหัสที่พบบ่อยและวิธีแก้ (SMTP Error Code)
| รหัส | ความหมาย | วิธีแก้ |
|---|---|---|
550 5.1.1 | ไม่มีผู้ใช้นี้ที่ปลายทาง (User unknown) | ตรวจการสะกดที่อยู่ ถามผู้รับว่าอีเมลยังใช้งานอยู่หรือไม่ |
5.1.2 หรือ "Host not found" | หาโดเมนปลายทางไม่เจอ หรือโดเมนไม่มี MX Record | ตรวจการสะกดโดเมน เช่น gmial.com หรือโดเมนผู้รับหมดอายุ |
452 4.2.2 หรือ 552 5.2.2 | กล่องจดหมายผู้รับเต็ม | แจ้งผู้รับผ่านช่องทางอื่นให้ล้างกล่องจดหมาย แล้วส่งใหม่ |
552 5.3.4 | อีเมลใหญ่เกินกว่าที่ปลายทางยอมรับ | ลดขนาดไฟล์แนบ หรือส่งเป็นลิงก์ดาวน์โหลดแทน |
421 4.7.0 หรือ 451 4.7.1 | ปลายทางขอให้ชะลอการส่ง (Rate limit หรือ Greylisting) | โดยมากไม่ต้องทำอะไร ระบบจะลองส่งซ้ำเอง หากเกิดต่อเนื่องหลายชั่วโมงให้ดูชื่อเสียงของ IP |
530 5.7.0 หรือ 535 5.7.8 | ต้องยืนยันตัวตนก่อนส่ง หรือชื่อผู้ใช้และรหัสผ่านผิด | ตรวจการตั้งค่า SMTP Authentication ในโปรแกรมอีเมล ใช้ชื่อผู้ใช้เป็นอีเมลเต็ม |
550 5.7.1 "Relaying denied" | เซิร์ฟเวอร์ไม่ยอมส่งต่อให้ เพราะไม่ได้ยืนยันตัวตน | เปิด "Outgoing server requires authentication" ในโปรแกรมอีเมล |
550 5.7.1 พร้อมชื่อ Blacklist เช่น Spamhaus | IP ของเซิร์ฟเวอร์ผู้ส่งติด Blacklist | ดูคู่มือ ตรวจสอบและขอถอด IP ออกจาก Blacklist อีเมล |
550 5.7.25 (Gmail) | IP ผู้ส่งไม่มี PTR Record (Reverse DNS) | ตั้งค่า PTR ของ IP ให้ชี้กลับมาที่ชื่อ Hostname ของ Mail Server |
550 5.7.26 (Gmail) หรือข้อความที่มีคำว่า DMARC | อีเมลไม่ผ่าน SPF/DKIM/DMARC | ตรวจ Record ตามคู่มือ ตั้งค่า SPF, DKIM และ DMARC |
554 5.7.1 พร้อมคำว่า spam หรือ policy | เนื้อหาหรือผู้ส่งถูกระบบกรองสแปมปฏิเสธ | ตรวจเนื้อหา ลิงก์ และไฟล์แนบ รวมถึงการยืนยันตัวตนของโดเมน |
550 5.7.520 (Microsoft 365) | องค์กรไม่อนุญาตให้ Forward อีเมลออกนอกองค์กรอัตโนมัติ | ดูคู่มือ ตั้งค่า Forward อีเมลจาก Microsoft 365 Admin Center |
หมายเหตุ: ผู้ให้บริการแต่ละรายเขียนคำอธิบายต่อท้ายรหัสต่างกัน และบางรายใช้รหัสเดียวกันกับหลายสาเหตุ เช่น
550 5.7.1ให้อ่านข้อความภาษาอังกฤษที่ตามหลังรหัสประกอบทุกครั้ง มักมีลิงก์ไปยังหน้าอธิบายของผู้ให้บริการนั้นแนบมาด้วย