There seems to be a bug with RFC822 processing in ltmp proxying that doesn't quote local parts that, for example, contain spaces.
director config:
director_username_hash = %Ln lmtp_proxy = yes recipient_delimiter = +
protocol lmtp { auth_socket_path = director-userdb auth_username_chars = auth_username_format = %Ln passdb { driver = sql args = /etc/director/sql.d/lmtp.ext result_failure = return-fail result_internalfail = return-fail } }
lmtp.ext:
password_query = SELECT 'y' AS proxy, NULL AS password, 'y' AS nopassword FROM users WHERE userName='%Ln'
from exim -> director LMTP network dump:
MAIL FROM:test@testdomain.com\r\n RCPT TO:<"deemzed.uk+Junk E-mail"@mailbox.localhost>\r\n DATA\r\n (etc) .\r\n
501 5.5.4 Invalid parameters\r\n
QUIT\r\n
from director -> dovecot LMTP network dump:
MAIL FROM:test@testdomain.com\r\n
RCPT TO:
501 5.5.4 Invalid.parameters\r\n
I'll try to pare down a full config for doveconf that displays this behaviour if required, as currently I have sensitive/extraneous information in there, but this seems fairly cut and dried as a bug to me.
-- Dave