【问题标题】:Getting Postfix to pass SMTP AUTH to after queue content filter [closed]让 Postfix 在队列内容过滤器之后将 SMTP AUTH 传递给 [关闭]
【发布时间】:2012-10-22 00:19:04
【问题描述】:

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

【问题讨论】:

    标签: smtp postfix-mta smtp-auth


    【解决方案1】:

    你可以使用:

    smtpd_sasl_authenticated_header=yes

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

    【讨论】:

    • 哇.. 这确实有效。我唯一关心的是这个......因为这只是后缀添加的标题。我认为任何服务器都可以添加相同的标头,因此导致我的内容过滤器相信电子邮件已经过身份验证,而实际上它没有经过身份验证,或者它可能已由不同的服务器进行身份验证。对于验证标头的有效性以及它是否是由我的 postfix 服务器而不是其他服务器添加的,您有什么想法?
    • 假设这是入站消息,您应该只检查应该来自您的服务器的最顶部的 Received 标头。
    • 我正在检查传入和传出。如果我只检查传入,除非用户在本地发送,否则不会有 SMTP 身份验证。所以,话虽如此,但我认为外向没有什么不同,对吧?我是否假设我的服务器将始终添加接收最多的标头,无论用户是否获得 smtp 授权?我想我需要测试一下....
    • 我的服务器似乎总是添加顶部的 Received 标头...所以这是我可以信任的标头。它是否经过身份验证....谢谢。干杯。
    猜你喜欢
    • 2017-03-14
    • 2012-05-27
    • 1970-01-01
    • 2012-08-10
    • 1970-01-01
    • 2017-11-22
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多