Hi list,
I have a small problem with recipient_delimiters contained in usernames. Recently I have extended recipient_delimiter from "+" to "+-" in both Postfix and Dovecot (using lmtp) and now any user that have a '-' in it's username can't receive mail anymore, because lmtp truncates the localpart after the '-' and of course can't find the first half in the user database.
To illustrate: given an account "foo-bar@example.com", I get the following log entry from postfix: Mar 9 09:31:43 batleth postfix/lmtp[6196]: 9A7BA33E005B: to=<foo-bar@example.com>, relay=batleth.sapienti-sat.org[private/dovecot-lmtp], delay=20, delays=20/0.01/0.01/0.08, dsn=5.1.1, status=bounced (host batleth.sapienti-sat.org[private/dovecot-lmtp] said: 550 5.1.1 <foo-bar@example.com> User doesn't exist: foo@example.com (in reply to RCPT TO command))
Is there any way to tell lmtp to first look for <user><delimiter><extension> and if that fails look for <user> only (the reverse order would be ok, too)?
Thanks in advance, Juri
doveconf -n: # 2.3.10 (0da0eff44): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.10 (bf8ef1c2) # OS: Linux 4.4.0-174-generic x86_64 Ubuntu 16.04.6 LTS ext4 # Hostname: batleth.sapienti-sat.org auth_default_realm = sapienti-sat.org first_valid_uid = 115 imap_idle_notify_interval = 29 mins last_valid_uid = 115 mail_location = maildir:/srv/vmail/%Ld/%Ln managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext namespace inbox { inbox = yes location = mailbox Drafts { special_use = \Drafts } mailbox Junk { autoexpunge = 180 days special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { autoexpunge = 365 days special_use = \Trash } prefix = INBOX. separator = . } passdb { args = /etc/dovecot/dovecot-sql.conf.ext driver = sql } plugin { sieve = file:~/sieve;active=~/.dovecot.sieve } protocols = " imap lmtp sieve" service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } } service imap-login { inet_listener imap { address = 127.0.0.1 ::1 } } service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service pop3-login { inet_listener pop3 { port = 0 } } ssl_cert = </etc/letsencrypt/live/sapienti-sat.org/fullchain.pem ssl_cipher_list = EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it ssl_prefer_server_ciphers = yes userdb { args = uid=postfix gid=postfix home=/srv/vmail/dovecot_state/%Ld/%Ln driver = static } protocol lmtp { auth_username_format = %Lu mail_plugins = " sieve" } protocol imap { mail_max_userip_connections = 20 }