Hello Everyone,
I have a fairly complex mail server setup with Postfix+Clamav+DSPAM+PPolicy+Dovecot+Virtual users on a single server.
I dealing with a very strange problem
Aliases are not working on my mailing system which are coming from proxy:mysql:/etc/postfix/
virtual_alias_maps.cf
host
mail.company.com[public/dovecot-lmtp] said: 550 5.1.1
<
al...@company.com> User doesn't exist:
al...@company.com (in reply to RCPT TO command)
But when a message comes in from the outside which goes through dspam/clamav then get reinjected on port 10024, which uses the /etc/dspam/dspam.d/mysql.conf they work perfectly.
With other words:
1,
us...@gmail.com ->
ali...@company.com
Can send letters to the
ali...@company.com, it will be properly resolved to the users for that alias from mysql and they will all receive the letter.
2,
us...@company.com ->
ali...@company.com
Can not send letters to
ali...@company.com, the alias will not be looked up by postfix, it will try to pass on the letter to dovecot-lmtp which of course will say that there is no such user like "
ali...@company.com" so I got the 550. This is a postfix problem it is crystal clear.
The SQL connection works in both cases.
When I use:
postmap -q
ali...@comapny.com mysql:/etc/postfix/
virtual_alias_maps.cf
That returns the correct list of aliases.
The relevant config section is here from
main.cf:
# Virtual users
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_mailbox_domains = proxy:mysql:/etc/postfix/
virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/etc/postfix/
virtual_mailbox_maps.cf
virtual_alias_maps = proxy:mysql:/etc/postfix/
virtual_alias_maps.cf proxy:mysql:/etc/postfix/
rfc2142_defaults.cf
virtual_transport = lmtp:unix:public/dovecot-lmtp
This makes utterly no fucking sense to me that when a mail from the outside comes in to the system and goes through all sort of virus, spam filtering etc including the alias check it works but when the mail would go the short way (local drop) it doesn't.
I went all the way into tcpdumping the mysql (since we store everything there for the mail system (users, domains, quotas, spam training, groupware etc)).
When a mail comes in from an external domain:
1, virtual alias maps query succeeds and returns the number of addresses
2, DSPAM query (select uid from dspam_virtual_uids WHERE username='
ali...@company.com') returns an id no
3, virtual alias maps query again
When a mail comes in from an internal domain:
1, virtual alias maps query succeeds and returns the number of addresses
I need to solve this very quickly any help is welcome!
Thank you!