นี่คือความคิดบางอย่างซึ่งจะต้องมีการปรับแต่งบางอย่างเพื่อตอบสนองความต้องการที่แน่นอนของคุณ สิ่งแรกที่ฉันพบคือ Postfix ดูเหมือนจะไม่ชอบทำอะไรกับที่อยู่ซึ่งเป็นชื่อแทน (เช่นvirtual_alias_domain
/ virtual_alias_maps
) แต่ก็ไม่เป็นไรเพราะในความเป็นจริงมันไม่สำคัญว่าที่อยู่เหล่านี้จะถูกเรียกตราบเท่าที่ทุกอย่างได้รับการส่งมอบอย่างถูกต้องในที่สุด
ดังนั้นใน Postfix's main.cf
ให้เพิ่มบรรทัดต่อไปนี้:
virtual_mailbox_domains = example.org
# Feel free to give munger a better name, just update master.cf appropriately
virtual_transport = munger:
ถัดไปคุณต้องบอก Postfix ว่าmunger
หมายถึงอะไรจริง ๆ เพิ่มตัวเลือกต่อไปนี้ (ดูที่ไพพ์ (8)สำหรับตัวเลือกเพิ่มเติม) ดังนั้นเพิ่มสิ่งต่อไปนี้ลงในmaster.cf
:
munger unix - n n - - pipe
flags= user=nobody argv=/usr/bin/redirector
ตามที่กล่าวไว้ข้างต้นสิ่งที่กำหนดไว้example.org
จะถูกส่งไปยัง/usr/bin/redirector
โปรแกรม (หรือสิ่งที่คุณต้องการเรียกใช้) สำหรับสิ่งปกติส่วนใหญ่คุณจะต้องมีอาร์กิวเมนต์บรรทัดคำสั่งสำหรับข้อมูลผู้ส่ง / ผู้รับ (อีกครั้งpipe(8)
มีรายละเอียดเพิ่มเติม) แต่เนื่องจากผู้ส่งและที่อยู่ปลายทางได้รับการแก้ไขแล้วไม่มีสิ่งใดที่จำเป็นในบรรทัดคำสั่ง
ตอนนี้คุณเพียงแค่ต้องเขียนredirector
โปรแกรม สิ่งนี้ใช้ได้กับฉัน:
#!/bin/sh
/usr/sbin/sendmail -bm -f 'something@myserver' 'something@gmail.com'
เป็นเชลล์สคริปต์ปกติ (หรือภาษาที่คุณเลือก) เพื่อให้ง่ายหรือซับซ้อนตามที่คุณต้องการ