On a vu il y a longtemps qu’on pouvait utiliser le SMTP callout avec Zimbra.
Si votre relais ne gère pas le SMTP callout (c’est le cas de postfix), il gère peut-être le LDAP callout.
A chaque fois qu’un mail arrive, le relais fait une requête LDAP auprès du serveur Zimbra pour vérifier si le destinataire existe ou pas.
Facile et efficace mais attention, cela peut devenir très gourmand niveau LDAP sur le serveur ZCS…
Pour mettre en place un LDAP callout sur un postfix, c’est assez simple.
Il suffit, côté postfix, j’ajouter une ligne dans le fichier main.cf :
relay_recipient_maps = ldap:/etc/postfix/ldap_zcs.cf
Cette ligne indique à postfix que pour savoir quels sont les destinataires autorisés, il faut effectuer la requête LDAP définie dans le fichier ldap_zcs.cf.
On va ensuite créer ce fichier :
server_host = ldap://zcs.domain.tld:389
server_port = 389
search_base =
query_filter = (&(|(zimbraMailDeliveryAddress=%s)(zimbraMailAlias=%s(zimbraMailCatchAllAddress=%s))(zimbraMailStatus=enabled))
result_attribute = zimbraMailDeliveryAddress,zimbraMailAlias
version = 3
ldap_cache = yes
ldap_cache_expiry = 600
ldap_cache_size = 64256
bind = no
timeout = 30
Bien entendu, il faut remplacer « zcs.domain.tld » par le nom de votre serveur ZCS (tel qu’il est accessible depuis votre relais).
Si votre relais est en DMZ, il faudra bien entendu ouvrir le port LDAP au niveau du firewall vers le serveur ZCS.
Lorsque votre ZCS est offline (pendant une upgrade), je vous conseille fortement de mettre commenter la ligne définissant le LDAP callout dans postfix afin que celui-ci accepte tous les mails (même ceux pour des destinataires inexistants) et les spoole en attendant que le ZCS repasse online (et de décommenter la ligne).
Si vous ne le faites pas, les mails seront refusés car le serveur LDAP ne répondra pas (avec, en plus, un timeout de 30 secondes à chaque connexion SMTP).
Ce billet n’est pas destiné à vous donner la configuration complète « clefs en main » d’un postfix en relais « devant » un ZCS, uniquement les informations concernant le LDAP callout. Ainsi, il ne faudra pas oublier le reste de la configuration postfix (relay_domains, transport, networks, etc) et ne pas oublier non plus de faire ce qu’il faut pour que le relai puisse attaquer le ZCS en LDAP…
La requête LDAP est honteusement pompée d’un thread sur le forum US Zimbra.