使用 postfix 中的管道和 1 content_filter 复制电子邮件

使用 postfix 中的管道和 1 content_filter 复制电子邮件

我正在使用 postfix,并且已经使用嗨。我正在使用 postfix,并且已经使用脚本作为 content_filter,该脚本将重新注入 smtpd 给所有用户,但在发生这种情况之前,我还想复制电子邮件。我需要多个 content_filter 吗?这不需要重新注入回 smtpd,因为我只是想复制电子邮件,所以我认为我不需要将其传递到我的其他脚本中。它应该是分开的。电子邮件应复制到本地目标,并通过脚本通过 smtpd 发出以将电子邮件传递给收件人。所以这些都只是针对外发电子邮件。我很确定它与使用管道和文件有关,但希望获得有关正确语法的指导,以及我是否应该使用脚本、两个 content_filter,以及如何将这两个配置为同时工作。我也不认为我可以在这里使用 always_bcc 选项,因为它只会在电子邮件经过当前 content_filter 之后复制一份,除非我错了。感谢您的帮助。

答案1

是的,我正在考虑这一点。我认为下面的脚本可以从 STDIN 捕获电子邮件并将其提供给文件,但该文件必须是唯一的,所以我在考虑使用 date 命令直到毫秒,以防不止 1 个人同时发送电子邮件。该文件必须是唯一的。此外,如果 master.cf 中的语法正确,我会很感激,但我认为这是可行的:

#!/usr/bin/php
<?php
$file = fopen("/tmp/postfixtest", "a");
fwrite($file, "Script successfully ran at ".date("Y-m-d H:i:s")."\n");


// read from stdin
$fd = fopen("php://stdin", "r");
$email = "";
while (!feof($fd)) {
    $line = fread($fd, 1024);
    $email .= $line;
}
fclose($fd);

fwrite($file, $email);
fclose($file);

?>

相关内容