diff --git a/roles/mail/templates/postfix-delivery/main.cf b/roles/mail/templates/postfix-delivery/main.cf
index 18a9b1a625d899c80bb3725be3f02a1521e02ce9..ad00fb94aeb79cdfaa2178618ae3b78155701c52 100644
--- a/roles/mail/templates/postfix-delivery/main.cf
+++ b/roles/mail/templates/postfix-delivery/main.cf
@@ -38,3 +38,7 @@ virtual_mailbox_domains = ${indexed}domains cdb:/etc/postfix/domains-auto
 # The return value from the lookup is ignored, because we've set
 # virtual_transport and virtual_mailbox_domains.
 virtual_mailbox_maps = ${ldap}local-recipients
+
+# Resolve aliases to their destination mailboxes.
+virtual_alias_maps = ${ldap}aliases
+
diff --git a/roles/mail/templates/postfix-out/main.cf b/roles/mail/templates/postfix-out/main.cf
index 6bb3565885a59237efd55b774bb8cf8787aa579f..2e2bd8810944de1bdab8473366ebe9a1ceffaa4a 100644
--- a/roles/mail/templates/postfix-out/main.cf
+++ b/roles/mail/templates/postfix-out/main.cf
@@ -39,16 +39,12 @@ smtpd_timeout = 1200s
 # "smtp" transport for outbound mail (bounces, ...). The latter
 # won't starve the former of delivery agent slots.
 relay_domains = ${indexed}domains cdb:/etc/postfix/domains-auto
-relay_recipient_maps = ${ldap}recipients ${indexed}transport ${indexed}mailman_transport
+relay_recipient_maps = ${ldap}recipients ${ldap}aliases ${indexed}virtual ${indexed}transport ${indexed}mailman_transport
 relay_destination_recipient_limit = 1
 
 # Send each message to its target backend.
 transport_maps = ${ldap}recipients ${indexed}transport ${indexed}mailman_transport
 
-# Resolve aliases etc, we want all outbound email to the
-# postfix-delivery instances to have the final recipients.
-virtual_alias_maps = ${ldap}aliases ${indexed}virtual
-
 # Message size limit.
 message_size_limit = 15000000