0

我在队列内容过滤器之后使用 Postfix 来过滤传入和传出的电子邮件。Postfix 使用 SMTP 将每封邮件注入内容过滤器。然后内容过滤器扫描邮件并将邮件重新注入后缀,就像这里一样:

http://www.postfix.org/FILTER_README.html#advanced_filter

我的 master.cf 文件如下所示:

## After Queue Content Filter
filter      unix  -       -       n       -       10      smtp
            -o smtp_send_xforward_command=yes
            -o disable_mime_output_conversion=yes
            -o smtp_generic_maps=
            -o myhostname=sample.hostname.com

## Re-injection listener
reinject unix  n       -       n       -       10      smtpd
    -o content_filter=
    -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks,no_milters
    -o smtpd_helo_restrictions=
    -o smtpd_client_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o smtpd_authorized_xforward_hosts=127.0.0.0/8

现在,这按预期工作,一切似乎都很好......除了......我需要知道电子邮件是否使用 SMTP 身份验证发送。现在,使用 smtp_send_xforward_command=yes 给了我很多关于远程发件人的信息,但是没有关于电子邮件是否已经过身份验证的信息。有没有办法让 Postfix 告诉我的内容过滤器是否已通过身份验证的用户发送了电子邮件,如果是,是哪个用户?

4

1 回答 1

1

您可以使用:

smtpd_sasl_authenticated_header=是

将用户名添加到 Received 标头,内容过滤器可以对其进行解析以确定身份验证。

于 2012-12-13T14:01:47.477 回答