Dưới đây là một số suy nghĩ, sẽ yêu cầu một số tùy chỉnh để đáp ứng nhu cầu chính xác của bạn. Điều đầu tiên tôi tìm thấy là Postfix dường như không thích làm bất cứ điều gì đối với các địa chỉ là bí danh (tức là virtual_alias_domain
/ virtual_alias_maps
). Nhưng điều đó tốt vì trong thực tế, không có vấn đề gì khi những địa chỉ này được gọi miễn là cuối cùng mọi thứ đều được giao đúng cách.
Vì vậy, trong Postfix main.cf
, hãy thêm các dòng sau:
virtual_mailbox_domains = example.org
# Feel free to give munger a better name, just update master.cf appropriately
virtual_transport = munger:
Tiếp theo, bạn cần cho Postfix biết munger
ý nghĩa thực sự của nó. Thêm vào đây (xem ống (8) để có thêm tùy chọn). Vì vậy, thêm những điều sau đây master.cf
:
munger unix - n n - - pipe
flags= user=nobody argv=/usr/bin/redirector
Theo như trên, bất cứ điều gì định mệnh example.org
sẽ được gửi đến /usr/bin/redirector
chương trình (hoặc bất cứ điều gì bạn muốn gọi nó). Đối với hầu hết mọi thứ thông thường, bạn cần một số đối số dòng lệnh cho thông tin người gửi / người nhận (một lần nữa, pipe(8)
có nhiều chi tiết hơn) nhưng vì địa chỉ người gửi và đích được cố định, nên không có gì khác trên dòng lệnh.
Bây giờ bạn chỉ cần viết redirector
chương trình. Điều này làm việc cho tôi:
#!/bin/sh
/usr/sbin/sendmail -bm -f 'something@myserver' 'something@gmail.com'
Đó là một tập lệnh shell thông thường (hoặc ngôn ngữ bạn chọn) vì vậy hãy làm cho nó đơn giản hoặc phức tạp như bạn muốn.