Ralentir le débit de postfix pour wanadoo/orange

closeCet article a été publié il y a 12 ans 4 mois , il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Si vous avez un serveur d’envoi de mails (je ne parle pas d’être un spammeur) et beaucoup d’abonnés chez Wanadoo et Orange, vous risquez fort le rejet temporaire de votre serveur si le débit d’envoi est trop fort.
C’est ce qui m’est arrivé et hop, 5000 mails entassés dans la file de postfix.

On peut donc créer une file spéciale dans le master.cf de postfix et une règle de transport pour ces domaines, avec un débit réduit. Du moment où j’ai rechargé la configuration postfix et relancer le traitement de la file, magie, en 1 heure, les 5000 mails étaient distribués.

Pour ce faire, j’ai utilisé les documentations suivantes et adapté au contexte « configuration postfix définie dans MySQL », comme expliqué dans mes articles précédents, toujours d’actualité.

Dans master.cf

slow unix – – n – 5 smtp
-o syslog_name=postfix-slow
-o smtp_destination_concurrency_limit=3
-o slow_destination_rate_delay=1

Dans main.cf

slow_destination_recipient_limit = 20
slow_destination_concurrency_limit = 2
slow_destination_rate_delay = 2s

Dans la table « transport » niveau MySQL

Sur une conf « non SQL », il suffirait de jouer avec le fichier de transport, sans oublier le « postmap » qui va bien.
Dans mon cas, le fichier de transport est défini comme ceci : transport_maps = proxy:mysql:/etc/postfix/mysql-virtual_transports.cf.
Donc, pour ajouter une route particulière pour ces 4 domaines, on ajoute en base :

INSERT INTO `transport` (domain, transport)
VALUES (‘wanadoo.fr’,’slow’),
VALUES (‘wanadoo.com’,’slow’),
VALUES (‘orange.fr’,’slow’),
VALUES (‘orange.com’,’slow’)
;

Enfin, on relance postfix et la file d’attente avec ses X messages bloqués avec un postqueue -f.

Monitoring de la file d’attente sous Nagios

Du coup, j’ai trouvé qu’il me manquait une surveillance de la file d’attente « postqueue » d’un serveur via Nagios. Je signale simplement ce script (http://exchange.nagios.org/directory/Plugins/Email-and-Groupware/Postfix/check_postqueue-2Esh/details)
Il semble faire le boulot simplement.
A rapprocher de ce document si l’ajout d’un contrôle via NRPE ne vous est pas familier.

Et voilà.

26 comments

  1. Merci pour cette astuce, j’avais aussi remarqué ce problème avec Orange et j’avais développé un système de file d’attente avec un envoi de mail toutes les 2 secondes pour éviter tout problème. L’inconvénient est que l’envoi massif d’email prend beaucoup de temps.

    Avez vous remarqué ce genre de problème chez d’autres hébergeurs ?
    N’y a t’il pas de problème d’être perçu comme un spammeur si des milliers d’emails sont envoyés en quelques secondes ?

    1. Salut,

      Non, j’ai déjà eu à monter des routes de transports spécifiques lorsqu’un serveur a plusieurs MX dont la moitié qui ne marchent pas…. 😉
      Mais pas pour ralentir.

      Pour ce qui est d’être vu comme un spammeur, tant que mxtoolbox ne vous montre sur aucune liste, ça doit être bon, vous n’êtes pas un spammeur 🙂
      Après, ils (Orange/Wanadoo) ont peut-être leur propre liste, mais ça se verra facilement => tous vos mails seront rejetés.
      Pour être marqué comme spammeur sur une liste, ça dépend de l’organisme qui tient à jour cette liste. Certains vous inscrivent sans préavis et vous suppriment s’ils le veulent seulement, d’autres jouent le jeu d’écrire à « abuse@ », d’attendre votre retour etc etc. Et surtout de certains proposent un processus de désincription d’une blacklist plus ou moins simple et plus ou moins automatique.

  2. Bonjour,

    Nous avions le même problème avec Orange à mon boulot, et mêmes avec ces réglages nous étions souvent bloqués. J’avais alors envoyé un mail au service Abuse Orange Internet pour leur demander conseil, je me permet donc de les citer :

    « Vous avez un problème lié à un nombre de connexions simultanées trop importante sur nos serveurs. Ce nombre est limité à 3 par IP sur nos serveurs. »

    Ce a quoi je leur avais répondu que nous limitions déjà les connexions, en leur montrant notre configuration, la même que dans l’article.

    « Les domaines @wanadoo.fr et @orange.fr partagent le même MX, ils concourent donc de manière cumulative à la limitation de 3 connexions simultanées alors que votre configuration en « autorise » jusqu’à 6 (3 pour wanadoo.fr et 3 pour orange.fr). »

    La solution serait donc de limiter le nombre de connexion à 1…

    1. Certes,
      Moi en l’occurence, j’ai plutôt des wanadoo que l’autre. Donc j’ai pas eu le problème. Mais ça vaut le coup de faire remarquer.
      En effet, host -t MX sur l’un et l’autre donne 2 noms différents, mais le même pool d’IP ensuite.

  3. Bonjour,

    J’avais eu le problème l’année dernière le problème avait été solutionné grace à cette solution.
    Et la le problème est revenu alors que les paramètre sont toujours activé.

    Avez vous une solution.

    1. Bah vu de loin non.
      J’ai eu le cas il y a quelques jours, c’était je pense car j’envoyais un paquet d’emails un peu gros (600 ko * des milliers)
      Sinon si ça se confirme, peut-être ont-ils changé leurs règles. A suivre

  4. Bonjour,

    J’ai suivi ce guide et il semble qu’une partie des mails soient partis, mais il en reste un grand nombre qui bloque avec l’erreur « (mail transport unavailable) », une idée de la signification de ce message ?

    1. Salut,
      Vu de loin non, surtout si une partie des mails seulement (d’un même domaine je suppose) est correctement envoyée.
      Sinon j’aurais dit qu’il manquait peut-être la ligne dans la table « transport »

      C’est quoi le log précis concernant un tel mail ? (les lignes avant et après)

  5. Merci pour ta réponse en fat j’avais erreur, un « – » qui manquait devant le « o » dans master.cf.

    Par contre une fois cette erreur corrigée, je n’ai plus le message précédent, certains mails sont partis mais j’ai toujours des milliers de mails qui s’accumulent en queue pour orange et wanadoo avec l’erreur « delivery temporarily suspended: host smtp-in.orange.fr[80.12.242.9] refused to talk to me: 421 mwinf5c54 ME Trop de connexions, veuillez verifier votre configuration. Too many connections, slow down. OFR004_104 [104] »

    J’ai bien ajouté

    transport_maps = hash:/etc/postfix/transport
    slow_destination_recipient_limit = 20
    slow_destination_concurrency_limit = 2

    à mon main.cf

    slow unix – – n – 5 smtp -o syslog_name=postfix-slow -o smtp_destination_concurrency_limit=1 -o slow_destination_rate_delay=1

    à master.fr (sur une seule ligne), j’ai essayé de mettre la limite à 1 au lieu de our voir si ça faisait une différence mais ça ne semble pas changer grand chose.

    et voici mon fichier transport :
    root:/etc/postfix# cat transport
    wanadoo.fr slow:
    orange.fr slow:
    wanadoo.com slow:
    orange.com slow:
    laposte.net slow:

    Je vois pas ou j’ai pu faire une erreur 🙁

  6. Salut à tous, j’ai trouvé la solution à mon problème, qui aidera peut être fred également.

    J’ai ajouté les lignes suivantes au fichier de transport pour prendre en compte LES SOUS DOMAINES d’orange et wanadoo :

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

    Il est possible qu’avant, orange n’utilisait pas de sous domaines pour ses mails et que depuis qu’ils se sont mis à en utiliser, le problème est revenu. J’avais une file de 5000 mails qui est en train de se vider à grande vitesse depuis que j’ai ajouté ces deux lignes au fichier !

  7. C’est intéressant en effet.
    Personnellement, sans avoir mis de sous-domaine, je vois quand même que ma file « slow » est utilisée à l’heure actuelle, exemple :

    Jan 8 12:16:05 blabla postfix-slow/smtp[11900]: D22882A800B: to=, relay=smtp-in.orange.fr[80.12.242.9]:25, delay=0.2, delays=0.04/0/0.09/0.07, dsn=2.0.0, status=sent (250 2.0.0 lPG41k02d4r9Ask01PG4zq mail accepted for delivery)

    Je viens justement de faire un mailing ce matin avec plusieurs centaines de wanadoo/orange et je n’ai pas un seul « slow down ». La file n’est pas montée très haut non plus.

    tiens par contre j’ai ça, c’est nouveau :
    host mx1.free.fr[212.27.48.6] refused to talk to me: 421 Server busy, too many connections from your IP
    Faudra peut-être ralentir vers chez eux aussi.

    A suivre

  8. Ah ben tant qu’on parle de free, free bloque 100% de mes mails avec une erreur « 451 Too many errors from your IP », je les ai contacté pour essayer de comprendre la raison mais je suis un peu perplexe… Je trouve ça dingue d’avoir autant de problèmes avec les opérateurs français quand tout fonctionne au poil avec hotmail gmail et yahoo (avec un ou deux bounce sur yahoo mais ça finit par passer)

    1. Ce genre de réflexion m’énerve…
      Les autres FAI tel que GMail, yahoo et Hotmail sont pareils… Je gère une solution d’emailing et je peux te l’assurer… Je dirai meme que les FAI français sont très bien équipés par rapport à plein d’autres…

      Peut etre qu’il faut réfléchir autrement et se dire que tu envoie tous simplement beaucoup plus sur des adresses Free et Orange…

      1. Pas la peine de s’énerver pour si peu.
        En effet, pour l’instant je n’ai jamais eu à ralentir face à gmail ou autre.
        Peu importe, l’article était là pour expliquer comment faire… quel que soit le service en face

        1. J’ai rien contre la personne…C’est juste que je n’aime pas le french bashing permanent alors que la réflexion est comme souvent dans ce cas, assez limitée.

  9. Bonjour,
    Comment peut-on vérifier que cela marche ?
    J’utilise webmin. Y-a-t-il un moyen de vérifier cela depuis l’interface ?

    1. C’est pourtant déjà une bonne méthode :
      /var/log/syslog:Jan 22 13:56:47 XXXX postfix-slow/smtp[21732]: 403522F8293: to=, relay=smtp-in.orange.fr[80.12.242.9]:25, delay=0.3, delays=0.08/0.01/0.08/0.13, dsn=2.0.0, status=sent (250 2.0.0 r0wn1k00k4r9Ask010wntr mail accepted for delivery)

  10. Ah ça y est j’ai bien des lignes « postfix-slow » 🙂 Merci. Il suffisait d’être un peu patient. Maintenant il faut que je me dépatouille avec Free car les raisons qu’ils invoquent pour blacklister un serveur entier sont complétement irréalistes.

    Une petite question pour un expert : la plupart des autres services de Postfix utilisent smtpd et non pas smtp. Quelle est la différence ?

  11. Bonjour,

    Chez moi cela ne fonctionne pas, il semblerait que les configurations ne soient pas prises en compte…
    Pourrais-je avoir un « postconf -n » afin de comparer avec le miens qui me semble bien vide ?

    Merci 😉

  12. Bonjour,

    En fait pour moi cela n’a pas fonctionné, j’ai donc utilisé dans main.cf

    default_destination_recipient_limit = 20
    default_destination_concurrency_limit = 2

    Voilà, merci pour l’article, à bientôt 😉

  13. Merci pour ton article!
    Le slow_destination_recipient_limit = 20 est-il le nombre maximum de destinataires par file d’attente ou par message ?
    En gros si j’envoie une newsletter, cad le même message à 5000 destinataires, le système fonctionne. Testé et approuvé.
    Mais si j’envoie 5000 messages différents (du style « Bonjour Mr X » avec une pièce jointe différente à chacun) aux 5000 personnes, comment cela se passe t’il ?
    Il envoie par paquet de 20 également ? Ou il ne prend pas en compte la variable slow ?
    Merci

    1. Salut,
      J’avoue que de tête je ne sais plus trop, je n’ai plus joué avec ça depuis un moment que c’est en place.
      Regarde le site de postfix, chaque paramètre est bien documenté
      Et c’est la conjonction de tout ça qui fonctionne
      bon courage

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.