Dovecot submission announces CHUNKING but backend Postfix does not support it
Stephan Bosch
stephan at rename-it.nl
Tue Oct 30 17:29:30 EET 2018
Op 28-9-2018 om 10:46 schreef Michael Goth:
> On 09/20/2018 10:24 PM, Stephan Bosch wrote:
>>
>>
>> Op 20/09/2018 om 13:39 schreef Michael Goth:
>>> On 09/20/2018 12:56 PM, Robert Schetterer wrote:
>>>> Am 20.09.2018 um 11:04 schrieb Michael Goth:
>>>>> Hello,
>>>>>
>>>>> I'm setting up Dovecot 2.3.2.1 as a submission proxy to a Postfix
>>>>> backend server. Dovecot announces CHUNKING, but the Postfix
>>>>> backend does not support (or announce) it.
>>>>>
>>>>> HELO from Postfix:
>>>>>
>>>>> 220 backend.mydomain.com ESMTP Postfix (Ubuntu)
>>>>> ehlo test
>>>>> 250-backend.mydomain.com
>>>>> 250-PIPELINING
>>>>> 250-SIZE 104857600
>>>>> 250-VRFY
>>>>> 250-ETRN
>>>>> 250-STARTTLS
>>>>> 250-ENHANCEDSTATUSCODES
>>>>> 250-8BITMIME
>>>>> 250 DSN
>>>>>
>>>>>
>>>>> HELO from Dovecot proxy:
>>>>>
>>>>> 220 proxy.mydomain.com Dovecot ready.
>>>>> ehlo test
>>>>> 250-proxy.mydomain.com
>>>>> 250-8BITMIME
>>>>> 250-AUTH PLAIN LOGIN
>>>>> 250-BURL imap
>>>>> 250-CHUNKING
>>>>> 250-ENHANCEDSTATUSCODES
>>>>> 250-SIZE
>>>>> 250-STARTTLS
>>>>> 250 PIPELINING
>>>>>
>>>>>
>>>>> When a client sends BDAT, Postfix closes the connection. Here's a
>>>>> log snippet from Postfix:
>>>>>
>>>>> < MAIL FROM:<user at mydomain.com>
>>>>> > 250 2.1.0 Ok
>>>>> < RCPT TO:<some at recipient.com>
>>>>> > 250 2.1.5 Ok
>>>>> < BDAT 114098 LAST
>>>>> > 502 5.5.2 Error: command not recognized
>>>>> < Content-Type: multipart/alternative;
>>>>> boundary=Apple-Mail-55D35F74-2EB7-4B3B-A607-E421DD71C07A
>>>>> > 221 2.7.0 Error: I can break rules, too. Goodbye.
>>>>>
>>>>>
>>>>> Apple Mail seems to ignore the fact that Postfix does not
>>>>> understand BDAT and Postfix does not like that :-)
>>>>>
>>>>>
>>>>> From a quick glance at the code it seems CHUNKING is always added
>>>>> to the capabilities and that's not configurable. Is this a bug or
>>>>> am I doing something wrong?
>>>>>
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Michael
>>>>
>>>> that "may" version depend
>>>>
>>>> http://www.postfix.org/features.html
>>>> ...
>>>> Postfix 3.4 SMTP server support for RFC 3030 CHUNKING (without
>>>> BINARYMIME).
>>>> ...
>>>>
>>>
>>> As far as I understand, Dovecot always adds certain capabilities.
>>> This is the responsible code (I think):
>>>
>>> https://github.com/dovecot/core/blob/c8d03c3cab68328947a5afb47f48aef5b5a1e4ab/src/submission/submission-client.c#L95
>>>
>>
>> Dovecot adds the capability to the server side (facing the client),
>> but not on the proxy client side (facing Postfix). If Postfix doesn't
>> support CHUNKING, Dovecot will translate between BDAT from client and
>> DATA towards Postfix. That's the way it is supposed to work anyway. I
>> cannot reproduce your problem here with a quick test.
>>
>> Can you enable mail_debug=yes (e.g. for that particular user) and
>> show me the debug log of the proxy activity?
>>
>> The output from `dovecot -n` would also be helpful.
>>
>> Regards,
>>
>> Stephan.
>>
>
> I think I found the problem:
>
> I am not using the submission_* config directives to configure the
> relay SMTP server.
> Instead, I'm using Dovecot's proxy feature for selecting a backend
> server based on the user's authentication. The submission_* directives
> are all unset.
Yeah, don't do that! I've adjusted the wiki to explain this better,
since you're apparently not the only one who made this mistake.
> When using the submission_* directives, Dovecot translates from BDAT
> to DATA. With my configuration, it seems to just relay all the
> commands to the backend server.
After auth, the login proxy is just a matter of copying buffers back and
forth between backend and frontend, so no protocol interpretation is
performed.
Regards,
Stephan.
More information about the dovecot
mailing list