1 votes

Comment limiter le débit du courrier électronique sortant sur un hôte Linux/Postfix ?

Contexte : Je suis un fan de l'ouvrage de David Allen Faire avancer les choses Cela signifie que lorsqu'un courriel arrive dans ma boîte de réception, si je peux y répondre immédiatement, je veux le faire et garder ma boîte de réception vide. Mais il y a un problème : si je réponds immédiatement, les chances que je reçoive une réponse à la réponse augmentent. Je veux donc limite de taux mon courriel par retarder certains messages sortants . Des retards d'une heure, de quatre heures ou même d'une journée conviendraient à mes besoins.

Ma question est de savoir comment mettre en œuvre cette idée sur un système Linux fonctionnant avec postfix.

Voici quelques observations :

  • Je peux facilement mettre un X-Delay: dans tout message sortant pour indiquer que le message doit être retardé, et de combien.
  • Je peux facilement intercaler quelque chose entre mon Mail User Agent et sendmail .
  • Le courrier électronique est ce qui se rapproche le plus d'un service critique. Le courrier sortant doit être extrêmement fiable.
  • Je veux éviter de dupliquer le service de file d'attente fiable déjà présent dans Postfix.
  • Il semble que Postfix presque a déjà ce que je veux. Il existe un dispositif appelé header_checks(5) qui inspectera les en-têtes et prendra des mesures, mais bien qu'il y ait une action pour placer le courrier dans la file d'attente "hold", il n'y a pas d'action pour placer le courrier dans la file d'attente "deferred". Si je pouvais placer de manière fiable un courrier électronique dans la file d'attente "différé" avec un horodatage approprié (c'est-à-dire N heures dans le futur), je pense que mon problème serait résolu.

Toutes les suggestions sont les bienvenues, même si je préférerais ne pas avoir à m'occuper de Parcheando Postfix...

1voto

Norman Ramsey Points 625

J'ai renoncé à utiliser postfix pour résoudre ce problème. Au lieu de cela, j'ai trouvé un moyen relativement propre de résoudre le problème en utilisant MH, qui est le mailer que j'utilise depuis plus de 15 ans :

  1. Un courrier sortant qui doit être retardé de N heures est composé dans le "dossier brouillon" de MH +delayN .

  2. Lorsque j'ai fini de rédiger le courrier, pour m'assurer que je laisse le courrier dans le dossier au lieu de l'envoyer, j'ai modifié le paramètre whatnow programme qui traite send comme synonyme de quit si le message est stocké dans un dossier dont le nom a la forme delayNNNNNN est une séquence non vide de chiffres.

  3. Mon job cron horaire vérifie tous les dossiers pertinents et les fichiers de navires qui sont suffisamment anciens (détails éludés) :

    for path in $MAIL/delay*[0-9]
    do
      minutes=...
      for outgoing in $(find $path -mmin +$minutes -name '[0-9]*')
      do
        folder=... 
        msg=...
        send -draftfolder +$folder -draftmessage $msg
      done
    done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X