Paramétrer Zimbra pour délivrer lentement les mails vers les SMTP Orange

Billet posté le 1 oct. 2016

De la patience avec les SMTP Orange tu auras

C’est quoi finalement le problème ? Et bien tu fais l’administration de ton propre serveur de messagerie ou bien tu es aussi sysadmin au boulot et beaucoup de tes utilisateurs envoient des emails à destinations d’orange.fr ou bien encore wanadoo.fr et ils restent bloqués dans les files d’attentes des SMTP sortants ?

C’est un problème connu depuis de nombreuses années.

Le message que l’on retrouve dans les logs ressemble à ceci :

Sep 28 09:12:46 orion postfix/error[14122]: 625D9C6C45:
to=<toto@orange.fr>, relay=none, delay=0.02, delays=0.01/0.01/0/0,
dsn=4.0.0, status=deferred (delivery temporarily suspended: host
smtp-in.orange.fr[80.12.242.9] refused to talk to me: 421 mwinf5c44 ME
Trop de connexions, veuillez verifier votre configuration. Too many
connections, slow down. OFR004_104 [104])

C’est sans appel Orange nous dit de livrer plus lentement les emails à destination de leurs serveurs.

Ici, nous nous intérrons au cas où notre MTA sortant est un serveur Zimbra en version 8.6. Nous allons plus précisément configurer la brique postfix qui est incluse dans cette version de Zimbra.

Configuration du fichier /opt/zimbra/postfix/conf/master.cf.in

Tout à la fin du fichier il est nécessaire d’ajouter les lignes suivantes :

#ajout pour les serveurs lents
slow    unix    -       -       n       -       3       smtp
   -o smtp_destination_concurrency_limit=5
   -o slow_destination_rate_delay=1

Configuration du fichier transport

Créer le fichier /opt/zimbra/postfix/conf/transport avec le contenu suivant :

wanadoo.com slow:
wanadoo.fr slow:
orange.com slow:
orange.fr slow:

Puis nous utilisons la commande suivante :

postmap /opt/zimbra/postfix/conf/transport

Puis enfin la ligne suivante dit à postfix de prendre en compte notre fichier de transport :

zmprov ms $(zmhostname) zimbraMtaTransportMaps
"proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
lmdb:/opt/zimbra/postfix/conf/transport"

En effet l’attribut LDAP zimbraMtaTransportMaps dit la chose suivante :

zimbra@orion:~$ zmprov desc -a zimbraMtaTransportMaps
zimbraMtaTransportMaps
    Value for postconf transport_maps. Comma separated list.

               type : string
              value :
           callback :
          immutable : false
        cardinality : single
         requiredIn :
         optionalIn : server,globalConfig
              flags : serverInherited
           defaults : proxy:ldap:/opt/zimbra/conf/ldap-transport.cf
                min :
                max :
                 id : 1555
    requiresRestart :
              since : 8.5.0
    deprecatedSince :

zimbra@orion:~$

Et oui, c’est un nouvel attribut qui est apparût dans Zimbra à partir de la version 8.5

Redémarrage et contrôle des logs

On fait un petit redémarrage des services :

zmcontrol restart

Puis on regarde le fichier /var/log/zimbra.log et nous y recherchons des lignes avec le motif postfix-slow

grep orange.fr /var/log/zimbra.log
Sep 30 16:15:22 orion postfix-slow/smtp[6224]: 3C34CCA602:
to=<toto@orange.fr>, relay=smtp-in.orange.FR[80.12.242.9]:25,
delay=93952, delays=93950/0/0.83/0.8, dsn=2.0.0, status=sent (250 2.0.0
pqFM1t00z0T6ZwJ01qFNyN mail accepted for delivery)

Puis on peut monitorer que la file d’attente chute tranquillement par les commandes suivantes :

watch -n 10 "mailq | tail"

Le mot de la fin ?

C’est un paramétrage très rapide à effectuer… pour peu qu’on connaisse un minimum postfix et que l’on fasse attention à l’intégration postfix / Zimbra. Je pense notamment au fichier master.cf vs master.cf.in qui est processé par zmconfigd ;-)