Dovecot Proxy LTMP client connect to TCP port 0
Wido den Hollander
wido at widodh.nl
Sat Apr 9 11:51:08 UTC 2016
I looked into the further and it seems that there is no default port for LMTP in
Dovecot.
I patched the code and this seems right:
https://github.com/wido/core/commit/a5917908850eb570ca441517e6bc33f6ce63ed7a
This will make the LMTP client connect to TCP port 24 if no port has been
provided.
I will submitted it as a Pull Request on Github:
https://github.com/dovecot/core/pull/6
Wido
> Op 9 april 2016 om 11:25 schreef Wido den Hollander <wido at widodh.nl>:
>
>
> Hi,
>
> I am trying to set up a Dovecot proxy which proxies through POP3, IMAP and
> LTMP
> towards a different Dovecot machine.
>
> On the proxy machine I use a MySQL database as a userdb and passwdb backend
> and
> it returns the proper information as described here:
> http://wiki2.dovecot.org/PasswordDatabase/ExtraFields/Proxy
>
> IMAP and POP3 works just fine, but with LMTP I run into a problem.
>
> On the 'proxy' machine Postfix is also running and it deliver locally to LTMP
> via Socket:
>
> virtual_transport = lmtp:unix:private/dovecot-lmtp
>
> Dovecot there is also configured to proxy LTMP:
>
> lmtp_proxy = yes
>
> service lmtp {
> unix_listener /var/spool/postfix/private/dovecot-lmtp {
> group = postfix
> mode = 0600
> user = postfix
> }
> }
>
> So far so good. A telnet to localhost 110 or 143 allows me to log in to the
> POP3/IMAP.
>
> When Postfix delivers the message locally to Dovecot through LTMP it tries to
> proxy it though.
>
> When doing so it tries to connect to TCP port 0 (zero).
>
> dovecot: lmtp(22580): Error: lmtp client: connect(mbox01.XXXX.nl, 0) failed:
> Connection refused
>
> I know I can return the 'port' field in the userdb query, but the same query
> is
> used for POP3, IMAP and LMTP. So that can't be hardcoded.
>
> I fixed it for now with a CASE statement in SQL:
>
> password_query = SELECT b.hostname AS host, NULL AS password, \
> 'Y' AS nopassword, u.email AS destuser, 'Y' AS proxy, \
> CASE '%s' WHEN 'lmtp' THEN 2525 WHEN 'pop3' THEN 110 WHEN 'imap' THEN
> 143
> END AS port \
> FROM User u, Backend b, Domain d \
> WHERE u.domainID = d.domainID \
> AND b.backendID = d.backendID \
> AND u.email = '%u'
>
> %s is a variable containing the service Dovecot is trying to look up.
>
> This is however rather hacky.
>
> On my destination machine LMTP is listening on port 2525. Is there any way to
> tell the Dovecot LTMP client to connect to port 2525 by default?
>
> Thanks,
>
> Wido
More information about the dovecot
mailing list