Make PL/pgSQL function feed back identity for mailboxes/relocated when there
are catchall destinations.
Without catchall aliases, if no virtual_alias matches, the query can just
return NULL and Postfix will later check mailboxes/relocated for the address
to rewrite.
However, since virtual aliases are handled long before mailboxes/relocated,
a catchall alias would also catch mail to mailboxes and relocated addresses,
which we do not want.
The way to tell postfix to keep delivering is for the virtual alias map to
return the search key itself (identity function).
This patch changes the postfix_virtual_alias_maps Pl/pgSQL function to do
exactly that, but only if there are catchall destinations defined for the
domain in question — otherwise it returns NULL when no match is found.
If you still have installed vmm 0.3.x you have to proceed this step first:
* upgrade your vmm installation to version 0.4-r41
If you have installed vmm 0.4/0.4-r41 you have to proceed this steps:
* stop Postfix and Dovecot
* backup/dump your database.
* backup/dump your database!
* start psql and connect to the appropriate database
(ex. psql mailsys mailsys vmm -W -h localhost)
* update the database: \i update_tables_0.4.x-0.5.pgsql
* GRANT SELECT ON postfix_alias TO postfix;
^^^^^^^^ <- your Postfix db user
Dovecot v1.2.x
-> Are you already using Dovecot v1.2.x?
* update the database for Dovecot v1.2.x:
\i update_tables_0.5.x_for_dovecot-1.2.x.pgsql
* GRANT SELECT ON dovecot_password TO dovecot;
^^^^^^^^ <- your Dovecot db user
* When you are using the SQL function »dovecotpassword()« in your
dovecot-sql.conf, update it also:
\i update_types_and_functions_0.5.x_for_dovecot-1.2.x.pgsql
* You have also to adjust the permissions of the set-uid deliver copy:
on BSD:
chgrp nobody /usr/local/lib/dovecot/deliver
on Linux:
chgrp nogroup /usr/local/lib/dovecot/deliver
chmod u+s,o-rwx /usr/local/lib/dovecot/deliver
* Check the master.cf from Postfix.
In prior setups the service dovecot was configured slightly different.
If you have set the command attribute 'user' to 'nobody:mail', so
either remove the group mail or replace it with the group nobody
or nogroup. (see command output from: id -ng nobody)
e.g.: flags=DRhu user=nobody argv=/usr/local/lib/dovecot/deliver …
* execute upgrade.sh
* start Dovecot and Postfix
If you have installed vmm 0.5.x:
* execute upgrade.sh
-> Are you already using Dovecot v1.2.x?
See a few lines above.
else
* read INSTALL