มีปัญหา mail server หลับ พบข้อความ stat=Deferred: Connection refused

google mail
google mail
เริ่มต้นก็ต้องทดสอบส่งอีเมลด้วย #mail xxx@hotmail.com
แล้วเข้าไปดู log ด้วย #tail /var/log/maillog
พบข้อความน่าสงสัยว่า stat=Deferred: Connection refused by [127.0.0.1]
ค้นจาก net เค้าก็แนะนำให้ไป start sendmail
ซึ่งเครื่องนี้ใช้งานส่งอีเมลมาโดยตลอด ผมก็ไม่เชื่อ จึงเริ่มเข้าไปดูละเอียด
ดังนี้
1. เครื่องนี้ใช้ postfix แทน sendmail มาพักหนึ่งแล้ว
จึงเข้าดูว่า relay ใน /etc/postfix/main.cf
ซึ่งหลายปีก่อนมีปัญหาต้องเปลี่ยน relay จึงเข้าไปตรวจพบ
relayhost = 202.47.249.23 ซึ่งเป็นของ relay2.cat.net.th
ทดสอบปิด relay ก็ยังมีปัญหาเหมือนเดิม
2. ทดสอบ restart postfix แล้วพบว่า postfix ไม่ได้เปิด
ซึ่งเป็นเหตุการณ์ที่แปลก ว่าทำไม postfix ไม่เปิดอัตโนมัติ
สรุปว่าการเปิด postfix อัตโนมัติหายไป
ถ้าเปิดก็จะส่งอีเมลได้ปกติ
3. ตรวจการเปิด postfix อัตโนมัติ
#chkconfig –list ไม่พบว่ามี postfix อยู่ในรายการ
#chkconfig –add postfix เพิ่ม postfix เข้าไปในรายการ
#chkconfig –list postfix
postfix         0:off   1:off   2:off    3:off    4:off    5:off    6:off
#chkconfig postfix on
postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
#service postfix start
แล้ว reboot เมื่อทดสอบส่งอีเมลขณะ postfix เปิดก็จะไม่มีปัญหา
4. หลังแก้ปัญหาแล้ว กลับไปตรวจสอบปัญหา DNS ที่สงสัยก่อนหน้านี้
ก็พบว่า DNS ไม่ใช่ปัญหา
ที่เห็นเป็นปัญหาเพราะทดสอบปิด relay แล้วเปิด postfix ก็จะได้ log ที่ต่างออกไป
มีข้อความที่ชวนให้สงสัยว่าเป็นที่ DNS รึเปล่า แต่จริงแล้วเกิดจาก relay=none
แต่ผมไปมองเรื่อง (connect to host.domain.com[x.x.x.x]: Connection refused)
5. ถ้าส่งอีเมลได้สำเร็จจะมีข้อความว่า
Mar  2 19:49:57 ldap postfix/smtp[2514]: 123:
to=<x@x.x.x.x>, relay=202.47.249.23[202.47.249.23], delay=1,
status=sent (250 2.0.0 456 Message accepted for delivery)
6. สมัยนี้โดเมนสามารถผูกบริการกับอีเมลฟรีได้หลายที่
ที่ผมใช้อยู่ก็มี gmail apps กับ everyone.net ใช้ตั้งแต่ตอนที่เขาให้ใช้ฟรี
การผู้เข้ากับระบบอีเมลสาธารณะก็ต้องไปแก้ไข MX ใน DNS
http://www.everyone.net/
https://apps.google.com/