![Postfix:将邮件转发给每个收件人的脚本](https://linux22.com/image/758219/Postfix%EF%BC%9A%E5%B0%86%E9%82%AE%E4%BB%B6%E8%BD%AC%E5%8F%91%E7%BB%99%E6%AF%8F%E4%B8%AA%E6%94%B6%E4%BB%B6%E4%BA%BA%E7%9A%84%E8%84%9A%E6%9C%AC.png)
对于每封收到的邮件,都需要向原始发件人发送一封邮件,通知他所有或部分收件人地址已更改。目前我启动了 BCC 并将其转发给脚本。不幸的是,我没有找到将每个原始收件人作为参数发送的方法。所以我尝试分析标题,但这在某些情况下不起作用。所以完美的方法是将收件人列表作为我的脚本的参数数组。有什么办法可以实现它吗?我使用的是 postfix 2.11 当前相关配置是:
主文件:
recipient_bcc_maps = pcre:$config_directory/bcc.pcre
bcc.pcre:/^(.*)@domain.tld$/ ${1}@[email protected]
transport:autoreply.local autoreply:
master.cf:autoreply unix - n n - - pipe
flags= user=nobody argv=/usr/bin/php -f /etc/postfix/autoreply/autoreply.php ${sender} ${mailbox} ${queue_id}
例如有来自[电子邮件保护]到
用户1@this_domain_should_be_rewritten.tld
用户2@this_domain_should_be_rewritten.tld
user3@another_domain.tld(将被忽略)
Postfix 现在正在使用 mariaDB,并将用户 1 和用户 2 的邮件转发到
用户1@new_domain.tld
用户2@new_domain.tld
然后一封 BBC 邮件就通过 user1@ 发送到我的脚本了[电子邮件保护]。我看到邮件日志中每个用户都有一个条目,但最后我的脚本只有一封真正的邮件,并且带有以下参数:
${sender} = [email protected]
${mailbox} = user1@new_domain.tld
并将邮件本身作为 STDIN。目的是将邮件发送到[电子邮件保护]内容是,一些电子邮件地址已更改,并列出了所有受影响的用户(用户 1 和用户 2)。我开始在标题中搜索收件人:和抄送:,但在大多数情况下,这些数据不是标题的一部分,因此我没有机会获取所需的数据。最后,这是一个不太安全的文本分析。因此,如果我可以直接将数据(每个发件人)提供给我的脚本,无论是否有用户 3,我都会很高兴。
感谢您的参与!!