# [procmail]trier selon le compte de réception(Résolu)

## Napoleon

Bonjour,

Je voudrais pouvoir utiliser mutt avec deux comptes de courriel (appelons l’un A et l’autre B). Pour ça j’ai donc éditer mon .procmailrc. Sauf qu’après un petit « fetchmail -akv -m "/usr/bin/procmail -d %T" » les nouveaux messages dans chacune des boites A et B ne vont pas aux bons répertoires. D’ailleurs, je ne les retrouves nul part, ce qui est d’autant plus étonnant que si ces courriels ne sont pas reconnus comme correspondant à l’expression régulière il devraient selon toute rigueur se retrouvés dans le dossier par défaut or ils ne s’y trouvent pas non plus.

En fait, je crois bien que c’est mon filtre sur les adresses de destination qui ne fonctionne pas bien vue qu’autrement, tous les courriels arrivent à bon port. Du reste, je n’ai pas trouvé de modèle ailleurs sur internet et j’en viens à sollicité votre précieuse aide sur le sujet.

Merci par anticipation pour toute vos remarques.

Cordialement.

----------

## Napoleon

Je profite de ce petit up pour faire part de certaines de mes trouvailles :)

Il semblerait, selon ce forum que la bonne syntaxe serait « * ^To_* » alors que selon cet autre ce serait « * ^To_ » mais la fin de l’adresse doit être close par « \> ».

J’avoue ne pas savoir quoi dire :/

D’autre part, cette méthode ne porte que sur les headers, or si l’émetteur à décider de ne pas en mètre ou de les trafiqués tout mon système tombe à l’eau. N’y a-t-il vraiment pas moyen de filtrer selon le compte (et donc le nom d’utilisateur sur le serveur) ?

C’est dingue que personne ne cherche à trier son courriel selon l’adresse de réception !

----------

## guilc

 *Napoleon wrote:*   

> C’est dingue que personne ne cherche à trier son courriel selon l’adresse de réception !

 

Peut-être parce que procmail, le maildir dans le home et tout le bazar qui va avec, c'est un truc de dinosaure unix  :Wink: . On fait mieux maintenant : un serveur imap (cyrus ou dovecot par ex) avec des règles de filtrage au format sieve, beaucoup plus simple et souple que procmail... (perso, procmail, ça fait depuis 2004 que j'ai pas touché je pense)

A noter que le To est problématique pour toi : le "vrai" TO, ce n'est pas celui des headers du mail, c'est celui de l'enveloppe (RCPT TO). Or, procmail ne reçoit pas les informations de l'enveloppe, elles restent cantonnées au postfix. Utilisant fetchmail et pas de serveur MX, tu n'as pas cette info ! Tu peux donc seulement la reconstituer en créant un "RCPT TO" en fonction du compte qui est fetché par fetchmail...

Donc tu as 2 solutions :

- Tu te contentes du destinataire en header (qui a tous les inconvénients que tu as donné: il peut être forgé, absent, bref, pas fiable pour 2 sous) ;

- Dans ton fetchmailrc, tu ajoutes une option "-a" en fonction de la boite mail à ta ligne d'appel procmail, et tu l'utilise pour switcher.

----------

## Napoleon

Bonjour guilc et merci d’avoir répondu :D

 *guilc wrote:*   

> Peut-être parce que procmail, le maildir dans le home et tout le bazar qui va avec, c'est un truc de dinosaure unix ;). On fait mieux maintenant : un serveur imap (cyrus ou dovecot par ex) avec des règles de filtrage au format sieve, beaucoup plus simple et souple que procmail... (perso, procmail, ça fait depuis 2004 que j'ai pas touché je pense)

 Autant pour moi qui, bien que n’étant pas un dinosaure Unixien (d’ailleurs beaucoup trop jeune pour l’être), utilise encore Usenet ^^.

IMAP mais oui… pourquoi ne l’ai-je pas configuré avec imap dès le début ⸮ Je vais voir ce que ça donne.

 *guilc wrote:*   

> A noter que le To est problématique pour toi : le "vrai" TO, ce n'est pas celui des headers du mail, c'est celui de l'enveloppe (RCPT TO). Or, procmail ne reçoit pas les informations de l'enveloppe, elles restent cantonnées au postfix. Utilisant fetchmail et pas de serveur MX, tu n'as pas cette info ! Tu peux donc seulement la reconstituer en créant un "RCPT TO" en fonction du compte qui est fetché par fetchmail...

 

Euh, je voudrais bien en attendant de mêttre en place IMAP !

 *guilc wrote:*   

> Donc tu as 2 solutions :
> 
> - Tu te contentes du destinataire en header (qui a tous les inconvénients que tu as donné: il peut être forgé, absent, bref, pas fiable pour 2 sous) ;

 

Je préfère laisser tomber cette idée mais même en essayant comme ça, mon filtre n’avait pas marché c’est ça qui me déçoit le plus.

 *guilc wrote:*   

> - Dans ton fetchmailrc, tu ajoutes une option "-a" en fonction de la boite mail à ta ligne d'appel procmail, et tu l'utilise pour switcher.

 Tu parles bien du fetchmailrc pour l’option « -a » ? l’option -a de fetchmail ou de procmail exactement ? et si c’est une option de procmail comment est-ce que procmail connaîtrait l’adresse de réception ?

j’avoue que je suis perdu avec ta dernière proposition :)

À bientôt !

----------

## guilc

Je parle bien de l'option "-a" de procmail. J'imagine que tu pope des boîtes externes via fetchmail ? Bah dans ce cas, pour chaque boîte, une ligne procmail différente dans le fetchmailrc, et hop (au lieu de mettre procmail dans la ligne de commande d'appel de fetchmail)

----------

## Napoleon

 *guilc wrote:*   

> Je parle bien de l'option "-a" de procmail. J'imagine que tu pope des boîtes externes via fetchmail ? Bah dans ce cas, pour chaque boîte, une ligne procmail différente dans le fetchmailrc, et hop (au lieu de mettre procmail dans la ligne de commande d'appel de fetchmail)

 

D’accord [pas se fâcher]tu es sûr que tu ne veux pas plutôt dire « une ligne fetchmail dans le procmailrc ?[/pas se fâcher]. mais alors quelle syntaxe adopter pour integrer une commande de shell (en l’occurence la commande procmail) dans le fetchmailrc,? sachant que le miens est actuellement comme ceci :

 *Quote:*   

> 
> 
> poll pop.aol.com protocol pop3 user "user@aol.fr" password "mdphypersecret" ssl
> 
> keep
> ...

 

Merci et à bientôt.

----------

## guilc

non non, j'ai bien dit configurer l'appel à procmail DANS le fetchmailrc. Voir l'option "mda" du fetchmailrc, au lieu de configurer l'appel à procmail comme tu le fais aujourd'hui globalement avec l'option "-m" de fetchmail.

Du genre (pas testé) :

```
poll pop.aol.com protocol pop3 user "user@aol.fr" password "mdphypersecret" ssl

keep mda "/usr/bin/procmail -d comptelocal -a user@aol.fr"
```

----------

## Napoleon

Désolé de remonté ce fil si tardivement mais je n’ai pu me libérer qu’aujourd’hui…

Bon, mon fetchmailrc actuel ressemble à ceci.

Maintenant quelle est la règle de filtrage de procmail pour reconnaître le courriel de chacune des deux boites ? J’ai certains champs dans mes courriels contenant « for <conte2@aol.fr>; Sun, 27 Nov 2011 22:26:57 -0500 (EST) » mais je ne sais pas si c’est le champs ajouté par fetchmail où déjà contenu dans le courriel envoyé par l’expéditeur.

Très cordialement.

----------

## Napoleon

Ah ! j’ai enfin trouvé comment filtrer sur le compte, la syntaxe était :

```
* ^Received:.+compte@aol\.fr
```

\o/

----------

