Exim

如何通過程序過濾郵件內容,然後將其轉發到另一個地址?

  • September 26, 2013

在 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
  • 不要使用-tsendmail 標誌。

引用自:https://serverfault.com/questions/541991