![procmail 问题 - 根据目标域拆分一个地址的传递](https://linux22.com/image/542070/procmail%20%E9%97%AE%E9%A2%98%20-%20%E6%A0%B9%E6%8D%AE%E7%9B%AE%E6%A0%87%E5%9F%9F%E6%8B%86%E5%88%86%E4%B8%80%E4%B8%AA%E5%9C%B0%E5%9D%80%E7%9A%84%E4%BC%A0%E9%80%92.png)
我用进程邮件处理一些服务器端邮件处理。我尝试在支持多个域的服务器上设置一个电子邮件地址(在下面的示例中为domain.net
和domain.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/user
sara
我在这件事上做错了什么?
答案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 评论更新了抄送信息。