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:<u...@mydomain.com>
> 250 2.1.0 Ok
< RCPT TO:<s...@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.