Hi,
I have an OpenSMTPD / Dovecot installation on an OpenBSD server. I recently came across an issue where Dovecot LMTP would reject a message sent to a local user from an address which contains a single apostrophe (e.g. firstname.o'lastname@example.com). Apparently apostrophe, as well as a number of other special characters, are valid characters in the local part of the email address (that's everything to the left of the @ character).
The message I get in the logs is:
Jun 14 11:57:34 atlantic smtpd[42606]: 21749fd12ac76b57 mda delivery evpid=56aed6237d6444a0 from=firstname.o'lastname@example.com to=me@example.org rcpt=me@example.org user=me delay=0s result=PermFail stat=Error ("mail.lmtp: LMTP server error: 501 5.5.4 Invalid FROM: Invalid character in localpart")
where example.com is external domain and example.org is a local one.
The part of the message: LMTP server error: 501 5.5.4 Invalid FROM: Invalid character in localpart is returned by dovecot-lmtp. I’ve had a brief look at the source code, and it seems the responsible code is somewhere inside src/lib-smtp/smtp-address.c and, if I understand the code correctly, the address parsing in actually done in src/lib-smtp/smtp-parser.c.
My question is is there a configuration option, similar to auth_username_chars which lists valid characters in the email address, to stop Dovecot LMTP from rejecting such emails? or maybe you know another way of getting it to accept an email from such address?
My dovecot version is:
$ dovecot --version 2.3.5.1 (7ec6d0ade)
And in case that makes any difference, I'm running OpenBSD 6.5 patched to 005_libssl.
Thanks! Mike
-- Michal Krzysztofowicz http://beautifulocean.org/