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
1 |
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 :
1 2 3 4 |
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
1 2 3 4 |
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
1 2 3 4 5 |
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 :
1 |
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
1 2 3 4 |
postconf -e sender_dependent_relayhost_maps=/opt/zimbra/conf/sender_relay postconf -e smtp_sasl_password_maps=/opt/zimbra/conf/sasl_passwd postconf -e <strong>smtp_sender_dependent_authentication</strong>=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)
1 |
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)
1 2 |
postfix stop postfix start |
Et si jamais redémarrer Postfix n’était pas assez
1 |
zmcontrol restart |
Configurer postfix pour utiliser l’authentification SSL
1 2 |
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
1 2 |
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
1 |
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
1 |
postfix reload |
Techniquement, pour les versions de Zimbra 8.0+, un rechargement se fait automatiquement après 2 minutes.
Activer TLS
1 2 3 |
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
1 2 |
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)
1 2 3 |
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
1 2 |
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 :
1 |
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 :
1 2 |
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.
1 2 3 |
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 […]