通过使用 postfix 的脚本为特定用户传输入站电子邮件

通过使用 postfix 的脚本为特定用户传输入站电子邮件

我正在尝试设置 postfix,以便通过脚本将入站电子邮件发送到特定地址,但失败了。这对我来说都是新事物,我想我只是没有理解消息路由的复杂性。

我希望任何发往 message+[code]@domain.com 的消息都能够通过我的脚本传输,而发往普通用户的消息则不能。

我的设置如下;

我有一个“解析器”文件:

[email protected] FILTER parser:
[email protected] FILTER parser:
[email protected] FILTER parser:

在 master.cf 中我要么

smtp      inet  n       -       n       -       -       smtpd  -o content_filter=parser

-或者-

smtp      inet  n       -       n       -       -       smtpd

在 master.cf 中进一步深入

parser     unix -        n       n       -       -       pipe
   user=virtual argv=/bin/bash /usr/local/bin/parser.pl

在 main.cf 中我有

smtpd_recipient_restrictions =  check_client_access hash:/etc/postfix/rbl_override,
                            permit_mynetworks,
                            permit_sasl_authenticated,
                            reject_unauth_destination,
                            check_recipient_access hash:/etc/postfix/parser,
                            reject_unlisted_recipient,
                            reject_unknown_recipient_domain,
                            reject_non_fqdn_recipient,

我遇到的问题是,如果在 master.cf 中有“-o content_filter=parser”,那么所有邮件都会被定向到解析器,而不仅仅是发往我配置的帐户的邮件。

如果我删除“-o content_filter=parser”,那么就不会解析任何电子邮件,并且所有电子邮件都会以正常方式发送到帐户。

所以我的问题是,如何配置 postfix 来查询并使用我创建的解析器文件来确定它应该通过我的脚本传输哪些地址?

我试图向人们提供简短的信息,但是如果您愿意的话,我很乐意发布完整的配置或其他文件?

日志——这是本地传送的邮件;

11 月 1 日 08:46:02 fadmin lt-opendkim[2243]: 2B589746B4D: 已添加 DKIM-Signature 标头 (s=mail, d=domain.com) 11 月 1 日 08:46:02 fadmin postfix/qmgr[14679]: 2B589746B4D: from=, size=2626, nrcpt=1 (队列活动) 11 月 1 日 08:46:02 fadmin clamsmtpd: 10005A:[电子邮件保护][电子邮件保护],状态=CLEAN 11 月 1 日 08:46:02 fadmin postfix/smtp[14693]: D3C98746A47: to=, reply=127.0.0.1[127.0.0.1]:10025, delay=0.42, delays=0.26/0.01/0.05/0.1, dsn=2.0.0, status=sent (250 2.0.0 Ok: 排队为 2B589746B4D) 11 月 1 日 08:46:02 fadmin postfix/smtpd[14695]: 断开与 localhost[127.0.0.1] 的连接 11 月 1 日 08:46:02 fadmin postfix/qmgr[14679]: D3C98746A47: 已删除 11 月 1 日 08:46:02 fadmin postfix/virtual[14697]: 2B589746B4D: to=, reply=virtual, delay=0.11, delays=0.1/0.01/0/0, dsn=2.0.0, status=sent (已送达 maildir) 11 月 1 日 08:46:02 fadmin postfix/qmgr[14679]: 2B589746B4D: 已删除

这是发送到我的脚本的邮件

11 月 1 日 07:52:46 fadmin postfix/smtpd[11557]: 从 six.localdomain[192.168.8.1] 连接 11 月 1 日 07:52:46 fadmin postfix/smtpd[11557]: 5CB27746849: 客户端=six.localdomain[192.168.8.1] 11 月 1 日 07:52:46 fadmin postfix/cleanup[11559]: 5CB27746849: 消息 ID=<[电子邮件保护]> 11 月 1 日 07:52:46 fadmin lt-opendkim[2243]: 5CB27746849: six.localdomain [192.168.8.1] 非内部 11 月 1 日 07:52:46 fadmin lt-opendkim[2243]: 5CB27746849: 未经身份验证 11 月 1 日 07:52:46 fadmin postfix/qmgr[11528]: 5CB27746849: from=, size=2518, nrcpt=1 (队列活动) 11 月 1 日 07:52:48 fadmin postfix/pipe[11560]: 5CB27746849: to=, reply=parser, delay=2.1, delays=0.26/0.01/0/1.8, dsn=2.0.0, status=sent (通过解析器服务传送)11 月 1 日 07:52:48 fadmin postfix/qmgr[11528]: 5CB27746849: 已删除

很高兴发送更多日志和文件。请告诉我什么是相关的?

答案1

在 main.cf 中

check_recipient_access hash:/etc/postfix/parser, 

低于

permit_mynetworks,
permit_sasl_authenticated,

因此无法达成。

相关内容