I'm trying to get dynamic tagging (user+some...@example.com) to work on a mail server I'm setting up, however it only works as long as it's sent to the main user and not to aliases.

virtual-alias-maps query: SELECT get_email_alias_dyn('%s')
virtual-mailbox-domains query: SELECT 1 FROM domain WHERE name='%s'
virtual-mailbox-maps query: SELECT 1 FROM user_alias INNER JOIN domain ON user_alias.domainID = domain.id WHERE user_alias.primary = 1 AND CONCAT(user_alias.name, '@', domain.name)='%s'

"get_email_alias_dyn()" is a stored function which returns the destination email, so alias+...@example.com returns u...@example.com, al...@example.com returns u...@example.com and so on.

It works perfectly fine when the mail does not contain any tags (al...@example.com or u...@example.com) or if it's the primary email which contains tags (user+some...@example.com), but when it's tags on an alias the mail is bounced due to "user unknown".

I tried modifying the dovecot service in master.cf so the addresses can be filtered with Sieve (http://wiki2.dovecot.org/LDA/Postfix), but that did not solve the issue either, so I have not idea where it goes wrong or how to solve it.

I have included the logs from when I sent to alias+...@example.com below:

Oct 25 19:54:20 xx postfix/smtpd[10987]: connect from mail-wg0-f50.google.com[74.125.82.50] Oct 25 19:54:21 xx postfix/smtpd[10987]: 10585DFA63: client=mail-wg0-f50.google.com[74.125.82.50] Oct 25 19:54:21 xx postfix/cleanup[10995]: 10585DFA63: message-id=<cagpeo-ycjwbrjb-gfga+g_vkqj9cm80rmzf9lafenrcffxl...@mail.gmail.com> Oct 25 19:54:25 xx postfix/qmgr[9945]: 10585DFA63: from=<x...@gmail.com>, size=1743, nrcpt=1 (queue active) Oct 25 19:54:25 xx postfix/smtpd[10987]: disconnect from mail-wg0-f50.google.com[74.125.82.50] Oct 25 19:54:25 xx dovecot: auth-worker(11000): mysql(127.0.0.1): Connected to database mailcp Oct 25 19:54:25 xx postfix/pipe[10998]: 10585DFA63: to=<xx+t...@xx.com>, relay=dovecot, delay=5.4, delays=5.4/0/0/0.03, dsn=5.1.1, status=bounced (user unknown) Oct 25 19:54:25 xx postfix/cleanup[10995]: D39B2DFC7D: message-id=<20141025175425.d39b2df...@xx.com> Oct 25 19:54:25 xx postfix/bounce[11002]: 10585DFA63: sender non-delivery notification: D39B2DFC7D Oct 25 19:54:25 xx postfix/qmgr[9945]: D39B2DFC7D: from=<>, size=3937, nrcpt=1 (queue active)
Oct 25 19:54:25 xx postfix/qmgr[9945]: 10585DFA63: removed
Oct 25 19:54:26 xx postfix/smtp[11004]: D39B2DFC7D: to=<x...@gmail.com>, relay=gmail-smtp-in.l.google.com[74.125.195.27]:25, delay=0.24, delays=0/0/0.16/0.07, dsn=2.0.0, status=sent (250 2.0.0 OK 1414259666 d8si5463492wiv.41 - gsmtp)
Oct 25 19:54:26 xx postfix/qmgr[9945]: D39B2DFC7D: removed

The dovecot-sql.conf.ext file looks like this:

driver = mysql
connect = host=127.0.0.1 dbname=mailcp user=mailcp password=xxx
default_pass_scheme = SHA512-CRYPT
password_query = SELECT CONCAT(user_alias.name, '@', domain.name) as user, user.password as password, concat('*:bytes=', (CASE WHEN user.quota -1 THEN user.quota ELSE domain.quota END)*1000000) AS userdb_quota_rule FROM user INNER JOIN user_alias ON user.id = user_alias.userID AND user_alias.primary = 1 INNER JOIN domain ON user_alias.domainID = domain.id WHERE CONCAT(user_alias.name, '@', domain.name) ='%u' AND user.status = 1 user_query = SELECT CONCAT('/var/mail/vmail/', domain.name, '/', user_alias.name) as home, 5000 AS uid, 5000 AS gid, concat('*:bytes=', (CASE WHEN user.quota != -1 THEN user.quota ELSE domain.quota END)*1000000) AS userdb_quota_rule FROM user INNER JOIN user_alias ON user.id = user_alias.userID AND user_alias.primary = 1 INNER JOIN domain ON user_alias.domainID = domain.id WHERE CONCAT(user_alias.name, '@', domain.name) ='%u' AND user.status = 1

Reply via email to