วิธีแก้ปัญหาส่งเมลเข้า Gmail ไม่ได้ (Error 550 5.7.1 - IPv6)
หากคุณพบปัญหาการส่งอีเมลจากเซิร์ฟเวอร์ส่วนตัว (VPS/Dedicated) ไปยัง Gmail แล้วถูกตีกลับด้วยข้อความ "550-5.7.1 The IP you're using to send mail is not authorized..." สาเหตุส่วนใหญ่มักเกิดจากเซิร์ฟเวอร์ส่งออกด้วย IPv6 ที่ไม่ได้ตั้งค่ายืนยันตัวตนไว้
1. สาเหตุของปัญหา
ปัจจุบัน Google มีนโยบายความปลอดภัยที่เข้มงวด หากเซิร์ฟเวอร์ของคุณมีทั้ง IPv4 และ IPv6 ระบบส่งเมลมักจะเลือกใช้ IPv6 เป็นค่าเริ่มต้น แต่ถ้าเลข IPv6 นั้นไม่มีชื่ออยู่ใน SPF Record ของโดเมนคุณ Google จะปฏิเสธการรับจดหมายทันที
2. วิธีตรวจสอบว่าเซิร์ฟเวอร์ใช้ IPv6 หรือไม่
รันคำสั่งนี้ใน Terminal ของเซิร์ฟเวอร์:
curl -6 icanhazip.com
หากปรากฏเลข IP ยาวๆ แสดงว่าเซิร์ฟเวอร์ยังส่งข้อมูลผ่าน IPv6 อยู่
3. วิธีแก้ไข: ปิด IPv6 และบังคับให้ส่งผ่าน IPv4
วิธีที่ง่ายและได้ผลที่สุดคือการปิดการใช้งาน IPv6 สำหรับการส่งเมลออก ดังนี้:
ขั้นตอนสำหรับ AlmaLinux / CentOS:
# ปิด IPv6 ชั่วคราว ตั้งค่าให้มีผลถาวรใน /etc/sysctl.conf:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
4. ตั้งค่าใน Mail Server (Exim/DirectAdmin)
ไปที่ไฟล์การตั้งค่า /etc/exim.conf และเพิ่มบรรทัดนี้ไว้ด้านบนสุด:
disable_ipv6 = true
จากนั้นทำการ Restart บริการส่งเมล:
systemctl restart exim
v=spf1 ip4:YOUR_IP_ADDRESS ~all