在 qmail 中,您可以将其放在 .forward 文件中:
|/usr/local/bin/myfilter | forward [email protected]
这会将整个消息(包括标题)通过管道传输到程序myfilter
,然后将打印到其标准输出的消息转发到[电子邮件保护]。
但是,Exim 没有forward
程序,并且通常会忽略管道传输的输出。
如何使用 Exim .forward 文件做到这一点?
答案1
通过管道传输程序输出sendmail
。Exim 安装了该程序自己的实现。
|sh -c '/usr/local/bin/myfilter | /usr/sbin/sendmail -i [email protected]'
笔记:
- 您必须使用
sh
- Exim 将直接执行指示的程序,而不是通过 qmail 之类的 shell。需要一个 shell 来解析|
运算符。 - 指定的完整路径
sendmail
,因为在处理文件时,它/usr/sbin/
可能不会位于PATH
Exim 所运行的用户的路径中.forward
。 - 不要使用
-t
sendmail 标志。