Wietse Venema:
> - After the remote SMTP client connects to Postfix, The Postfix
>   SMTP daemon sends 'CONNECT' macros (j, _, {daemon_name}) and
>   SMFIC_CONNECT.
> 
> - After the remote SMTP client sends STARTTLS, the Postfix SMTP
>   daemon sends SMFIC_ABORT to reset Milter state to the state before
>   HELO/EHLO.
> 
>    Quote from milter-protol.txt:
> 
>     'A' SMFIC_ABORT     Abort current filter checks
>                       Expected response:  NONE
> 
>     (Resets internal state of milter program to before SMFIC_HELO,
>     but keeps the connection open.)
> 
> - Most notably, the Postfix SMTP daemon will NOT send SMFIC_CONNECT,
>   and will not send the associated 'CONNECT' macros.

mailmary--- via Postfix-users:
> The specification does NOT state that after STARTTLS the MTA must
> send an SMFIC_ABORT.

RTFM https://datatracker.ietf.org/doc/html/rfc3207#section-4.2 

The STARTTLS specification says that the server MUST DISCARD any
information that is has received from the client that was not
obtained from the TLS negotiation itself. I quote from RFC 3207
section 4.2:

    the SMTP protocol is reset to the initial state (the state in
    SMTP after a server issues a 220 service ready greeting)

The order of events is:

- Postfix server accepts connection from remote SMTP client

- Postfix server sends SMFIC_CONNECT + macros to the Milter(s)

    [ The following assumes that the Milter did not reject the
    connection ]

- Postfix server sends the 220 server ready greeting

    [ Here is the state that the MTA and Milter(s) must reset to,
    after a successful STARTTLS handshake. i.e. the state before
    the first SMTP client command ]

- Remote SMTP client sends a command, or disconnects

After completing STARTTLS:

- the Postfix SMTP server MUST reset to the state after sending the
  220 service ready greeting.

- This implies that Postfix MUST send SMFIC_ABORT to the Milters,
  so that they will reset to the state before SMFIC_HELO, not the
  state before SMFIC_CONNECT, as described in milter-protocol.txt.
  See also "The  order of events" above.

If your Milter forgets the SMFIC_CONNECT info, i.e., it resets to
the state before SMFIC_CONNECT, then your Milter needs to be fixed.

        Wietse
_______________________________________________
Postfix-users mailing list -- postfix-users@postfix.org
To unsubscribe send an email to postfix-users-le...@postfix.org

Reply via email to