Exim ระบุ port สำหรับ forward message เขียนเมื่อ 2012.10.16 โดย

การเช่าเครื่อง Dedicated Server ในต่างประเทศ มีผู้ให้บริการหลายแห่งจะทำการบังคับ outgoing message ให้วิ่งผ่าน Spam Filter Server ของเขา
ผมก็เช่า Dedicated Server ไว้สำหรับรับ Mail จาก Inter แล้ว forward กลับมายังเครื่องที่ไทย ปัญหาเกิดขึ้นเมื่อเช้า เมื่อวันนี้หนึ่งในลูกค้าได้รับเมล์จากการติดต่อธุรกิจของเขาจำนวนมาก ซึ่งตัว Server ต้อง forward มายังเครื่องที่ไทย แต่ติด Spam Filter ของผู้ให้บริการ ทำให้มีเมล์รอการ forward จำนวนมาก

ทางแก้
- ให้ผู้ให้บริการยกเลิกการ route port 25 ไปยังเครื่อง Spam Filter
- เปลี่ยน port การที่ใช้ในการ forward ของเราเอง

ผมเลือกการเปลี่ยน port สำหรับ forward message เนื่องจากระบบนี้ใช้ภายในอย่แล้ว ไม่กระทบผู้อื่นแน่นอน และเราสามารถจัดการระบบได้เอง

1. ทางฝั่ง server หลักเปิด port เพิ่ม โดยเพิ่มไปที่ daemon_smtp_ports โดยผมเลือกใช้ port 2000 จะได้เป็น
daemon_smtp_ports = 25 : 2000

จากนั้นทำการ restart exim

2. ฝั่งเครื่อง forward message สร้าง router สำหรับ domain ที่ต้องการ
internal_router:
  driver = manualroute
  domains = <domain1.com> : <domain2.com>
  route_data = <ip mailbox server>
  transport = internal_smtp

ในที่นี้มี domain ที่ต้องการ forward จำนวนน้อย ถ้าจำนวนมากใช้ lsearch ได้ครับ

3. ฝั่งเครื่อง forward message สร้าง transport driver เพื่อระบุรูบแบบการส่ง
internal_smtp:
  driver = smtp
  port = 2000

จากนั้น restart exim ใหม่ก็เป็นอันเรียบร้อย ในกรณีที่ต้องการให้ exim พยายามส่งเมล์ใน queue ทั้งหมดสามารถสั่งโดย
exim -qf

จะเพิ่ม -v เพื่อให้แสดงผลการทำงานต่อท้ายด้วยก็ได้



คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย