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