hosts = unix:${config.myEnv.mail.postfix.mysql.socket}
dbname = ${config.myEnv.mail.postfix.mysql.database}
query = SELECT DISTINCT destination
- FROM forwardings_merge
+ FROM forwardings
WHERE
((regex = 1 AND '%s' REGEXP CONCAT('^',source,'$') ) OR (regex = 0 AND source = '%s'))
AND active = 1
hosts = unix:${config.myEnv.mail.postfix.mysql.socket}
dbname = ${config.myEnv.mail.postfix.mysql.database}
query = SELECT DISTINCT destination
- FROM forwardings_merge
+ FROM forwardings
WHERE
- ((regex = 1 AND '%s' REGEXP CONCAT('^',source,'$') ) OR (regex = 0 AND source = '%s'))
+ (
+ (regex = 1 AND CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d') REGEXP CONCAT('^',source,'$') )
+ OR
+ (regex = 0 AND source = CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d'))
+ )
AND active = 1
- UNION SELECT '%s' AS destination
+ UNION SELECT CONCAT(SUBSTRING_INDEX('%u', '+', 1), '@%d') AS destination
'';
}
{
alias_database = "\$alias_maps";
### Virtual mailboxes config
- virtual_alias_maps = "hash:/etc/postfix/virtual mysql:${config.secrets.fullPaths."postfix/mysql_alias_maps"} ldap:${config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr"}";
+ virtual_alias_maps = [
+ "hash:/etc/postfix/virtual"
+ "mysql:${config.secrets.fullPaths."postfix/mysql_alias_maps"}"
+ "ldap:${config.secrets.fullPaths."postfix/ldap_ejabberd_users_immae_fr"}"
+ ];
virtual_mailbox_domains = config.myEnv.mail.postfix.additional_mailbox_domains
++ lib.remove null (lib.flatten (map
(zone: map
)
config.myEnv.dns.masterZones
));
- virtual_mailbox_maps = "hash:/etc/postfix/host_dummy_mailboxes mysql:${config.secrets.fullPaths."postfix/mysql_mailbox_maps"}";
+ virtual_mailbox_maps = [
+ "hash:/etc/postfix/host_dummy_mailboxes"
+ "mysql:${config.secrets.fullPaths."postfix/mysql_mailbox_maps"}"
+ ];
dovecot_destination_recipient_limit = "1";
virtual_transport = "dovecot";
"smtp.immae.eu" = null;
};
};
+ security.acme.certs."mail-rsa" = {
+ postRun = ''
+ systemctl restart postfix.service
+ '';
+ extraDomains = {
+ "smtp.immae.eu" = null;
+ };
+ };
system.activationScripts.testmail = {
deps = [ "users" ];
text = let