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.com,而是在中创建一个名为的sara文件。/home/usersara

我在这件事上做错了什么?

答案1

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

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

:0
* .domain.com
! sara

prcomailrc 手册页说:

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

调试procmail问题的最佳方法是在您的中设置verbose和。检查日志文件将在很大程度上揭示procmail为什么以特定方式运行。logfile.procmailrc

编辑:根据 OP 评论更新了抄送信息。

相关内容