procmail问题 – 根据目标域分割一个地址的交付

我使用procmail来处理一些服务器端的邮件处理。 我正在尝试在支持多个域的服务器上设置一个电子邮件地址(在下面的例子中, domain.netdomain.com )。 我想邮件发送到[email protected]bob和邮件发送到[email protected]sara

 VERBOSE=off LOGFILE=/dev/null :0 * .domain.net bob :0 * .domain.com sara 

上面的配方似乎工作得很好,因为它捕获到domain.net传入邮件,并将其转发给bob

但是,不是将邮件转发到domain.comsara ,而是在/home/user创build一个名为sara

我在这做错了什么?

您正在传送到本地文件,而不是将消息转发给用户。 另外(正如您在评论中指出的那样),您不是碳复制邮件,因此交付在第一个匹配规则之后停止。

 # 'c'opy the message to deliver it twice. # ! to forward the message :0 c * .domain.net ! bob :0 * .domain.com ! sara 

prcomailrc手册页说:

其他任何东西都将被视为邮箱名称(文件名或目录,绝对或相对于当前目录(请参阅MAILDIR))。 如果它是(可能不存在的)文件名,邮件将被附加到它。

debuggingprocmail问题的最佳方法是在.procmailrc设置verboselogfile 。 检查日志文件将很大程度上揭示为什么procmail是一个特定的方式。

编辑 :更新与基于OP评论的碳复制信息。