La configuration d’un relai (smarthost) dans Zimbra se fait à 99.9% en lignes de commande.
Il faut exécuter toutes les commandes en tant qu’utilisateur zimbra
Mettre en place le smarthost
zmprov ms serveur.zimbra.local zimbraMtaRelayHost seveur.smarthost.com
Activé l’authentification SMTP
Pour qu’un usager se connecte au serveur SMTP avec ses propres informations (et non avec les informations d’un autre compte, ce qui cause un problème lorsqu’on “reply” au courriel), il faut d’abord créer un fichier faisant la correspondance entre un usager et son mot de passe. Créons le fichier /opt/zimbra/conf/sasl_passwd dont le contenu ressemblera à ceci :
user1@domaine.com user1@domaine.com:mot_de_passe_user1 user2@domaine.com user2@domaine.com:mot_de_passe_user2 ... userX@domaine.com userX@domaine.com:mot_de_passe_userX
Ensuite, il faut créer un fichier faisant la correspondance entre un usager et son serveur SMTP. Créons le fichier /opt/zimbra/conf/sender_relay
user1@domaine.com server.smarthost.com user2@domaine.com server.smarthost.com ... userX@domaine.com server.smarthost.com
Ensuite, il faut générer les “lookup table” de Postfix avec ces deux fichiers
postmap /opt/zimbra/conf/sasl_passwd # Vérifier si cette commande est vraiment nécessaire. Devrait générer sasl_passwd.db postmap lmdb:/opt/zimbra/conf/sasl_passwd postmap /opt/zimbra/conf/sender_relay # Vérifier si cette commande est vraiment nécessaire. Devrait générer sender_relay.db postmap lmdb:/opt/zimbra/conf/sender_relay
Ne donnons pas plus de droits que nécessaire aux fichiers :
chmod 600 /opt/zimbra/conf/sasl_passwd /opt/zimbra/conf/sasl_passwd.db /opt/zimbra/conf/sasl_passwd.lmdb /opt/zimbra/conf/sender_relay /opt/zimbra/conf/sender_relay.db /opt/zimbra/conf/sender_relay.lmdb
Il faut configurer postfix pour utiliser la lookup table
postconf -e sender_dependent_relayhost_maps=/opt/zimbra/conf/sender_relay postconf -e smtp_sasl_password_maps=/opt/zimbra/conf/sasl_passwd postconf -e smtp_sender_dependent_authentication=yes postconf -e smtp_sasl_auth_enable=yes
Et parce que j’ai éprouvé des difficultés sans avoir exécuté cette commande (probablement pour rendre le changement permanent dans Zimbra)
zmprov ms serveur.zimbra.local zimbraMtaSmtpSaslPasswordMaps lmdb:/opt/zimbra/conf/sasl_passwd
Il suffit ensuite de redémarrer Postfix (même si les changements doivent être pris en compte automatiquement après 2 minutes selon la doc de Zimbra)
postfix stop postfix start
Et si jamais redémarrer Postfix n’était pas assez
zmcontrol restart
Configurer postfix pour utiliser l’authentification SSL
postconf -e smtp_sasl_auth_enable=yes zmprov ms serveur.zimbra.local zimbraMtaSmtpSaslAuthEnable yes
Configurer postfix pour utiliser le nom du serveur sortant plutôt que le nom canonique du serveur
postconf -e smtp_cname_overrides_servername=no zmproc ms serveur.zimbra.local zimbraMtaSmtpCnameOverridesServername no
Ceci est dû au fait que plusieurs serveurs smtp transmettent la connexion à un serveur différent que celui qui est défini dans le fichier smtp_sasl_password_maps.
Exemple du problème
Avec le contenu suivant dans le fichier /opt/zimbra/conf/relay_password
smtp.gmail.com username@gmail.com:password
Mais postfix se connecte à gmail-smtp.l.google.com
Postfix n’enverra pas les informations d’authentification contenues dans le fichier smtp_sasl_password_maps parce qu’il n’y a pas d’entrée pour le serveur gmail-smtp.l.google.com
Enfin, il faut recharger postfix
postfix reload
Techniquement, pour les versions de Zimbra 8.0+, un rechargement se fait automatiquement après 2 minutes.
Activer TLS
postconf -e smtp_tls_security_level=may zmprov ms serveur.zimbra.local zimbraMtaSmtpTlsSecurityLevel may postfix reload
Troubleshooting
Essayer tout d’abord de relancer Zimbra et postfix
postfix reload zmcontrol restart
Si jamais vos courriels ne parviennent pas à destination, vous pouvez définir un plus haut niveau d’inscription dans le log (/var/log/zimbra.log)
postconf -e debug_peer_list=serveur.zimbra.local postconf -e debug_peer_level=3 postfix reload
Host or domain name not found
…status=deferred (Host or domain name not found. Name service error for name=serveur.smarthost.com type=MX: Host not found, try again)
C’est que vous avez probablement oublié la partie
postconf -e smtp_cname_overrides_servername=no zmproc ms serveur.zimbra.local zimbraMtaSmtpCnameOverridesServername no
Si le problème persiste après avoir essayer ces commandes, vous pouvez passer par l’interface d’administration de Zimbra (en web). Pour se faire, une fois connecté en tant qu’admin, cliquez sur le menu Configurer > Server > [double clique sur le seveur désiré dans la liste] > Agent MTA et dans la page principale, décochez la case “Activer la vérification DNS”. Appuyer sur enregistrer dans le coin supérieur droit ensuite.
sasl_passwd.lmdb: No such file or directory
Pour ce problème, vous avez sûrement oublié d’exécuté cette commande :
postmap lmdb:/opt/zimbra/conf/sasl_passwd
Authentication failed: cannot SASL authenticate to server …: no mechanism available
Vous pouvez régler ce problème en configurant le mécanisme d’authentification de postfix. Premièrement, regardez le mécanisme d’authentification configuré dans postfix. Techniquement, par défaut, vous devrait voir ceci :
postconf smtp_sasl_security_options smtp_sasl_security_options = noplaintext, noanonymous
Tant que noplaintext sera présent, postfix refusera d’utiliser un mécanisme qui envoie le mot de passe en clair. Si votre serveur de relai (smarthost) support seulement les mécanismes PLAIN et LOGIN, vous devez retirer noplaintext de smtp_sasl_security_options.
postconf -e smtp_sasl_security_options=noanonymous zmprov ms serveur.zimbra.local zimbraMtaSmtpSaslSecurityOptions noanonymous postfix reload
source 1 : http://wiki.zimbra.com/wiki/Outgoing_SMTP_Authentication
source 2 : http://www.cyberciti.biz/faq/postfix-multiple-isp-accounts-smarthost-smtp-client/
1 Commentaire. En écrire un nouveau
[…] Pour plus d’information concernant les multiples connexions à un serveur SMTP lorsque Zimbra utilise un smarthost, consultez l’article Utiliser un smarthost dans Zimbra […]