Postfix:将邮件转发给每个收件人的脚本

Postfix:将邮件转发给每个收件人的脚本

对于每封收到的邮件,都需要向原始发件人发送一封邮件,通知他所有或部分收件人地址已更改。目前我启动了 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,我都会很高兴。

感谢您的参与!!

相关内容