Exim
如何通過程序過濾郵件內容,然後將其轉發到另一個地址?
在 qmail 中,你可以把它放在一個 .forward 文件中:
|/usr/local/bin/myfilter | forward upstream@example.com
這將傳遞整個消息,包括。標頭,到
myfilter
程序,然後將列印到其標準輸出的消息轉發到上游@example.com。但是,Exim 沒有
forward
程序,通常會忽略管道傳輸的輸出。如何使用 Exim .forward 文件做到這一點?
通過管道傳輸程序輸出
sendmail
。Exim 安裝自己的程序實現。|sh -c '/usr/local/bin/myfilter | /usr/sbin/sendmail -i upstream@example.com'
筆記:
- 您必須使用
sh
- Exim 將直接執行指定的程序,而不是通過像 qmail 這樣的 shell。需要一個 shell 來解析|
操作符。- 指定 的完整路徑
sendmail
,因為/usr/sbin/
可能不會在處理文件PATH
時執行 Exim 的使用者中。.forward
- 不要使用
-t
sendmail 標誌。