Placez plusieurs dossiers de courrier électronique en cas de plusieurs destinataires utilisant procmail

StackOverflow https://stackoverflow.com//questions/9617570

  •  09-12-2019
  •  | 
  •  

Question

Je vais créer un système de messagerie à la maison et je suis abonné à de nombreuses listes de diffusion.Les e-mails récupérés sur ma machine locale par fetchmail et filtrés par procmail.Mais il existe une situation qu’il n’est pas possible de résoudre avec mes connaissances actuelles.J'ai cherché sur Google pendant 2-3 heures pour trouver une solution sans aucun résultat.

Ce que je veux, c'est que je reçoive un e-mail avec plusieurs destinataires et j'aimerais copier cet e-mail dans différents dossiers.Voici un exemple:

Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org

Je voudrais mettre cet e-mail dans le dossier linux-kernel et linux-kernel-janitors.Comment puis-je le faire par procmail ?

Merci d'avance!

Était-ce utile?

La solution

Vous pouvez faire une boucle Procmail sur la liste des destinataires en utilisant SWITCHRC= mais c'est plutôt hackish.Ou, si vous souhaitez traiter une liste limitée de dossiers, vous pouvez les distribuer dans chacun séparément et supprimer le message si vous l'avez distribué au moins une fois.

LASTFOLDER=
:0c:
* ^TO_linux-kernel@vger\.kernel\.org\>
linux-kernel
:0c:
* ^TO_kernel-janitors@vger\.kernel\.org\>
kernel-janitors
# ... repeat for other addresses you want to multiplex ...
# If it was delivered, LASTFOLDER will be set
:0
* LASTFOLDER ?? .
/dev/null

Si vous avez peut-être copié dans des boîtes de réception supplémentaires avant d'atteindre cette section, vous souhaitez définir explicitement LASTFOLDER à la chaîne vide.Autrement, cela ne devrait pas être nécessaire, mais je l'ai laissé par précaution.(Cette variable contient le nom du dernier dossier dans lequel le message a été envoyé.)

Autres conseils

La solution ressemble à ceci:

Tout d'abord, une instruction IF est nécessaire car mon fichier .Procmailrc ne contient pas seulement les conditions de filtre de la liste de diffusion du noyau.S'il correspond à une autre liste de conditions.Je pense que au moment où il sera plus fin.

:0
 * [To|Cc].*vger.kernel.org
   LASTFOLDER=

    :0Ac:
    * ^[To|Cc].*linux-janitors@vger.kernel.org
    | DoItSomethingWithIt

    :0Ac:
    * ^[To|Cc].*linux-kernel@vger.kernel.org
    | DoItSomethingWithIt2

    :0                             
    * LASTFOLDER ?? .
    | DoItSomethingWithIt3

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top