2009-05-07 9 views

Répondre

2

Vous auriez dû être au moins un peu plus précis dans votre question. Je vais juste faire quelques suggestions de toute façon. Si vous souhaitez simplement envoyer du courrier toutes les quatre heures, vous devez exécuter sendmail en mode file d'attente uniquement (QUEUE_MODE = "cron" dans sendmail.conf) et configurer la file d'attente toutes les quatre heures (QUEUE_INTERVAL = "4h";). Je pense que cela ne s'applique qu'aux systèmes de type debian, mais le principe est le même partout - vous définissez le mode de file d'attente sur cron (ceci est en fait contrôlé par les arguments avec lesquels vous lancez sendmail) et vous le traitez périodiquement.

Si vous voulez juste retarder la livraison du courrier, il y a aussi un certain nombre de façons de le faire, en fonction de pourquoi vous voulez le faire. Une solution populaire est greylisting, elle ne fait que ce qui suit - quand un hôte se connecte à votre MTA (sendmail, par exemple), il est renvoyé avec l'invite d'essayer à nouveau dans un certain intervalle de temps. Un mailer correctement configuré fera juste cela - il essaiera à nouveau d'envoyer le mail et finalement le message sera accepté et livré (ou transféré). D'autre part, la plupart des spams n'essaieront pas de renvoyer le message suite à une erreur. Si vous avez besoin de greylisting sur sendmail vous pouvez lire ici: http://www.greylisting.org/implementations/sendmail.shtml

Espérons que cela a aidé au moins un peu.

EDIT:

Ok, donc maintenant je vois ce que vous devez faire. Voici la solution possible en utilisant sendmail (j'ai traité avec sendmail d'une manière ou d'une autre pendant des années maintenant, ainsi ...: P): Vous employez deux d'entre eux.

Le premier reçoit juste le courrier et le met en file d'attente et (et c'est important) il ne traite PAS la file d'attente. La deuxième instance sendmail exécute une file d'attente séparée et son QUEUE_MODE est défini sur daemon ou cron (disons, toutes les minutes). Maintenant, tout ce dont vous avez besoin est d'écrire un script externe, qui déplacerait le courrier de la première à la seconde, une fois l'âge du message atteint. Puisque les éléments de la file d'attente ne sont que des fichiers, c'est une tâche facile, faite en quelques lignes de, disons, perl (l'enfer, un script shell peut le faire aussi). Le déplacement d'éléments de file d'attente de la file d'attente à la file d'attente est aussi simple que le déplacement de fichiers d'un répertoire à l'autre. S'il vous plaît noter que cette technique est largement utilisée dans les solutions de traitement du courrier, tels que, disons spamassassin, donc ce n'est pas étrange, conjuré par mon esprit malade: P

Espérons que cela vous donne un indice ou deux.

+0

Je vais revenir en arrière et clarifier ma question, mais aucune de ces solutions ne fonctionnera malheureusement. Si le courrier arrive à l'instant t, j'en ai besoin pour être retransmis à l'instant t + 4heures. La liste grise ne fonctionnera pas car le courrier doit être accepté et mis en file d'attente par le relais. – Peauters

+0

Oui, cela le rend plus clair.Au début, j'étais un peu perplexe quant à la façon de le faire (ce n'est pas quelque chose que les gens feraient d'habitude avec leur courrier), une solution possible m'est venue à l'esprit. – shylent

Questions connexes