Submission proxy warning connecting to Exim

Stephan Bosch stephan at rename-it.nl
Thu Sep 3 02:57:46 EEST 2020



On 28/08/2020 01:11, Alec Moskvin wrote:
> Hello,
>
> When connecting to Exim 4.94, dovecot submission logs this warning:
>
>    dovecot[25235]: submission(alec)<25347><QNydV8+t+oMKAgAF>: Warning: smtp-client: conn localhost:25 ([::1]:25) [1]: Received invalid EHLO response line: Unexpected character in EHLO keyword
>
> Looks like it doesn't like the underscore in "X_PIPE_CONNECT", since
> it's neither "isalnum" nor a dash [1]:
>
>    1598480923.401085 220 myhostname ESMTP Exim 4.94 Wed, 26 Aug 2020 18:28:43 -0400
>    1598480923.401906 250-myhostname Hello localhost [::1]
>    1598480923.401906 250-SIZE 52428800
>    1598480923.401906 250-8BITMIME
>    1598480923.401906 250-PIPELINING
>    1598480923.401906 250-X_PIPE_CONNECT
>    1598480923.401906 250-CHUNKING
>    1598480923.401906 250-STARTTLS
>    1598480923.401906 250 HELP
>    1598480923.409242 250 OK
>    1598480923.434743 250 Accepted
>    1598480923.578335 250- 511 byte chunk, total 511
>    1598480923.578335 250 OK id=1kB3uN-0006ar-HU
>
> Adding the line "pipelining_connect_advertise_hosts =" to Exim's config
> fixes the issue by disabling X_PIPE_CONNECT.
>
> Is this a bug in Exim or is Dovecot being too strict?
>
> Thanks,
> Alec
>
> [1] https://github.com/dovecot/core/blob/2.3.11.3/src/lib-smtp/smtp-syntax.c#L250

Dovecot follows the standards as strict as reasonable, with some 
workarounds for the bad code out there. Exim is in violation of RFC 
5321, Section 4.1.1.1:

    ehlo-ok-rsp    = ( "250" SP Domain [ SP ehlo-greet ] CRLF )
                     / ( "250-" Domain [ SP ehlo-greet ] CRLF
                     *( "250-" ehlo-line CRLF )
                     "250" SP ehlo-line CRLF )

    ehlo-greet     = 1*(%d0-9 / %d11-12 / %d14-127)
                     ; string of any characters other than CR or LF

    ehlo-line      = ehlo-keyword *( SP ehlo-param )

    ehlo-keyword   = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
                     ; additional syntax of ehlo-params depends on
                     ; ehlo-keyword

    ehlo-param     = 1*(%d33-126)
                     ; any CHAR excluding <SP> and all
                     ; control characters (US-ASCII 0-31 and 127
                     ; inclusive)


The underscore is not supported by the standard (only dash).

Is Exim doing this by default? In that case we may need to add a workaround for it.

Regards,

Stephan.



More information about the dovecot mailing list