2012-02-01 1 views
10

il y a quelque temps, j'ai vu une question sur la détection de messages: rebondDetecting messages rebondis par tête Return-Path

Je travaille sur un outil susceptible d'envoyer des messages en vrac (pas de spam :) et je dois ajouter un fonctionnalité qui permettra de détecter les messages rebondis. Y a-t-il une réponse standard associée aux rebonds? Serait-ce dans l'en-tête du corps? par le Père Noël, 2011-09-12


Vous ne pouvez pas compter ni sur les en-têtes ou corps du message pour pouvoir rebondir d'identifier de manière fiable le destinataire d'origine, surtout si vous voulez automatiser le processus. Même si vous ajoutez vos propres en-têtes personnalisés, il est probable que le serveur de rebond les dépouillera lorsqu'il vous enverra une notification .........................

La seule information qui restera complètement intacte dans un rebond est l'adresse email du chemin de retour - l'adresse à laquelle votre serveur annonce qu'il veut envoyer les renvois. Ainsi, la seule façon d'automatiser l'acquisition de rebonds vraiment précis consiste à encoder le destinataire directement dans l'adresse du chemin de retour lui-même. Cela se fait généralement en remplaçant l'adresse du chemin de retour par défaut de votre serveur pour chaque message sortant, en utilisant une valeur unique par destinataire, comme [email protected], où XXXXX est une représentation codée et/ou obscure de l'adresse e-mail du destinataire ou un autre identifiant interne. Cette technique nécessite l'utilisation d'un serveur de messagerie qui peut prendre en charge ce type d'adresse attrape-tout de caractère générique afin que vous n'ayez pas à configurer un nouveau compte de rejet pour chaque adresse e-mail à laquelle vous envoyez. En supposant que, vous configurez simplement le serveur pour vider tous ces courriels de bounce- * à votre manuscrit, qui a seulement besoin de décoder le XXXXX afin de déterminer qui était le destinataire original. a répondu sep 12 '11 Alex Howansky

Ce qui précède semble une excellente solution. Maintenant, ma question est la suivante:

Comment configurer un Postfix (ou tout autre) serveur de messagerie pour vider chaque e-mail du rebondi compte [email protected] à un script qui analysera et récupérer l'identité le destinataire d'origine? Le script doit-il être enregistré dans le répertoire du serveur de messagerie et le message sauvegardé dans le même répertoire? Un fournisseur de services de messagerie tiers vous permet-il de configurer le compte de messagerie pour le vidage des messages et d'installer le script sur le serveur?

Chantez

Répondre

12

La norme pertinente est appelée VERP, par la voie. Vous voulez dire [email protected], pas seulement [email protected]. Le jeton est ce qui le rend unique!

Postfix déjà accepter le courrier pour [email protected] donné une adresse valide [email protected] aussi longtemps que vous configurez le recipient_delimiter dans main.cf:

recipient_delimiter = + 

Il y a plusieurs façons de configurer Postfix afin qu'il livrera le courrier votre script ET vous dire ce que le jeton était. Essayez ceci:

  1. Créer l'adresse [email protected] la même façon que vous créez des alias normalement dans ce domaine: par exempleun alias ordinaire ou une boîte aux lettres virtuelle

  2. Créez un transport de livraison personnalisé dans master.cf. ${extension} signifie que le script recevra tout ce qui vient après le + comme premier argument, et <username> devrait l'UID local sous lequel le script devrait s'exécuter.

    bounce unix -  n  n  -  -  pipe 
        flags=R user=<username> argv=/script/which/receives/bounces ${extension} 
    
  3. Créer une carte de transport si vous ne possédez pas déjà un:

    transport_maps = hash:/etc/postfix/transport 
    
  4. Ajoutez la ligne suivante dans /etc/postfix/transport pour diriger [email protected] au nouveau transport créé à l'master.cf:

    [email protected] bounce: 
    
  5. Reconstruire le plan de transport:

    postmap /etc/postfix/transport