A mail problem ?

วันนี้มี อ.ท่านนึงเจอปัญหาเวลาใช้ Outlook เช็คเมลผ่าน POP3/SSL บนเซิร์ฟเวอร์ที่ผมดูแลอยู่ อาการก็คือตอน login ใส่ username / password กี่ครั้งๆ ก็ไม่ผ่าน .. อืม ขั้นแรก เช็คจาก log ก็พบว่า SSL ไม่มีปัญหาอะไร ส่วน POP3 มีรายงาน error ว่า

-ERR Unable to process From lines (envelopes), change recognition modes.

ไม่รู้ว่าสาเหตุคืออะไรแน่ เลยลอง telnet localhost 110 แล้วลอง authen. ก็พบว่าเกิดอาการแบบเดียวกันกับตอนที่ใช้ Outlook คือ POP3 server มันตี error กลับมาแล้วก็ disconnect ไปเลย คงเพราะมันตี error กลับ ทางฝั่ง client เลยเข้าใจว่า authenticate ไม่ผ่าน … และปัญหาไม่น่าจะอยู่ที่ client หรือ ระหว่าง client กะ server แต่น่าจะอยู่ที่ server เองนี่แหละ

เอา error message มา google ดูก็พบว่ามีคนเจอปัญหาแบบเดียวกันนี้หลายคน แต่ยังไม่มีใครอธิบายได้ว่ามันมีสาเหตุจากอะไร ค้นอยู่พักนึงก็เจอคำแนะนำว่าให้ลบ mailbox ของ user ที่มีปัญหาใน /var/spool/mail/ หรือ /var/mail/ ทิ้ง .. ทีแรกคิดว่าไม่น่าเกี่ยว แต่เกิดเฉลียวใจอะไรไม่รู้ เลยลองสั่ง

# file /var/mail/*

ปรากฏว่า mailbox ของ อ.ท่านที่เจอปัญหาเป็นไฟล์ text ธรรมดา ไม่ใช่ mail text (a.k.a mbox) .. เลยจัดแจงย้าย mailbox ไปไว้ที่อื่น แล้ว touch ขึ้นมาใหม่ เปลี่ยน owner / permission ให้ถูกต้อง ส่งเมลเข้า แล้วก็ลอง Outlook อีกที .. ผ่าน ! .. :D

สรุปว่า ปัญหาน่าจะเกิดจาก mailbox มันไม่ได้จัดเก็บใน format mbox อย่างถูกต้อง พอ authenticate ผ่านแล้ว POP3 server ที่ใช้อยู่ (i.e., popper) จะทำสำเนา mailbox เป็นอีกไฟล์นึง เอาไว้ทำงานชั่วคราวโดยไม่ต้องแตะ mailbox จริง .. คงเป็นจังหวะนี้เองที่ POP3 server มันพบว่า mailbox มันจัดเก็บผิด format ก็เลยรายงาน error กลับไปที่ client … .. ไม่ได้เกี่ยวกับ authentication เล้ย (- -“)

ย้อนกลับมาอ่าน error อีกที ถึงพอเข้าใจว่า มันบอกใบ้ไว้แล้ว .. “Unable to process From line” .. ไอ้ From line ก็คือบรรทัดแรกของเมลแต่ละฉบับใน mailbox ไง .. ดังนั้นปัญหานี้ มันก็น่าจะอยู่ที่ตัว mailbox นั่นแหละ ถ้าเข้าใจตั้งกะแรกก็คงไม่เสียเวลาไล่เช็คกันนาน :P .. ก็นะ เพิ่งเคยเจอ เลยมาบันทึกไว้ เผื่อจะเป็นประโยชน์ในอนาคต … ส่วน mailbox ทำไมอยู่ๆ จัดเก็บผิด format อันนี้ไม่รู้เหมือนกัน :P