获取Postfix以将SMTP AUTH传递到队列内容过滤器之后

时间:2012-11-01 11:59:48

标签: smtp postfix-mta smtp-auth

我在队列内容过滤器后使用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告诉我的内容过滤器,如果经过身份验证的用户发送了一封电子邮件,如果是,那么哪个用户?

1 个答案:

答案 0 :(得分:1)

您可以使用:

smtpd_sasl_authenticated_header=yes

向Received标头添加用户名,内容过滤器可以解析该用户名以确定身份验证。