Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme config maildroprc sous debian sarge

13 réponses
Avatar
Thierry B
Bonjour,

J'ai un petit soucis avec maildrop, en fait, quand j'envoie un mail en
mettant mon mail dans le champ "to" et un autre mail àm oi dans le champ
"cc", maildrop ne traite que le mail de la 1èere entete qu'il trouve en
l'occurence "to".

Voila un petit test que j'ai fait avec maildrop et un fichier eml,
sachant que xxx@wanadoo.fr est relevé par pop par fetchmail qui renvoie
à postfix vers le compte xxx@yyy.eu.org

debian:/home/thierry# cat message4.eml
From: xxx@free.fr
To: xxx@wanadoo.fr
Cc: xxx@yyy.eu.org
Subject:zzzz


Voila le contenu de mon maildroprc

----------------------------------------------------------------------------------------------------------------------------------------------
SENDMAIL="/usr/sbin/sendmail -oi -f $FROM"
#logfile "/var/log/maildrop.log"
#VERBOSE = "5"
#log "========"

/To:.*/:h
TO="$MATCH"

/Bcc:.*/:h
BCC="$MATCH"

/From:.*/:h
FR="$MATCH"

/Subject:.*/:h
SUB="$MATCH"

if ( $SIZE < 26144 )
{
exception {
xfilter "/usr/bin/spamassassin"
}
}

if (/^X-Spam-Flag: *YES/)
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $SUB File:$DEFAULT/.Spam"`
to "$HOME/$DEFAULT/.Spam/"
}
}

ADDRLIST=""

foreach /^(To|Cc|Bcc): .*/
{
foreach (getaddr($MATCH)) =~ /.*/
{
ADDRLIST="$ADDRLIST $MATCH"

if ((tolower($MATCH)) eq xxx@wanadoo.fr)
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.Wanadoo"`
to "$HOME/$DEFAULT/.Wanadoo/"
}
}

if ((tolower($MATCH)) eq xxx@yyy.eu.org)
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.yyy"`
to "$HOME/$DEFAULT/.yyy/"
}
}
else
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $SUB Match:$MATCH
File:$DEFAULT"`
to "$HOME/$DEFAULT"
}
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------


Voila le contenu du maildrop.log

Jun 27 18:01:35 debian maildrop: From: xxx@free.fr To: xxx@wanadoo.fr
xxx@wanadoo.fr Subject: zzz Match:xxx@wanadoo.fr
File:xxx.eu.org/thierry/Maildir//.Wanadoo

On remarque que la variable ADDRLIST est à xxx@wanadoo.fr, et donc il
n'a traité que le champ "to" du mail alors, qu'il me semblait que la
commande "foreach /^(To|Cc|Bcc): .*/" devait traiter tous les mails des
eventuels headers: to, Cc et bcc.

Qu'en pensez-vous?

Merci :-)

A+


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

10 réponses

1 2
Avatar
Jacques L'helgoualc'h
Thierry B a écrit, dimanche 2 juillet 2006, à 22:54 :
Bonjour,



bonjour,


J'ai un petit soucis avec maildrop, [...]



/Bcc:.*/:h
BCC="$MATCH"



Ça ne sert pas à grand-chose... plutôt Cc: ?

[...]
ADDRLIST=""

foreach /^(To|Cc|Bcc): .*/
{
foreach (getaddr($MATCH)) =~ /.*/
{
ADDRLIST="$ADDRLIST $MATCH"

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.Wanadoo"`
to "$HOME/$DEFAULT/.Wanadoo/"
}
}

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.yyy"`
to "$HOME/$DEFAULT/.yyy/"
}
}
else


[...]

Voila le contenu du maildrop.log

Jun 27 18:01:35 debian maildrop: From: To:
Subject: zzz Match:
File:xxx.eu.org/thierry/Maildir//.Wanadoo

On remarque que la variable ADDRLIST est à , et donc il
n'a traité que le champ "to" du mail alors, qu'il me semblait que la
commande "foreach /^(To|Cc|Bcc): .*/" devait traiter tous les mails des
eventuels headers: to, Cc et bcc.

Qu'en pensez-vous?



La grande boucle commence à construire ADDRLIST, mais le premier if est
exécuté, et le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement.
Il faudrait un « "cc ..." » pour avoir fromage /et/ dessert.

Merci :-)



de rien,
--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry B
Jacques L'helgoualc'h a écrit :
Thierry B a écrit, dimanche 2 juillet 2006, à 22:54 :
Bonjour,



bonjour,


J'ai un petit soucis avec maildrop, [...]



/Bcc:.*/:h
BCC="$MATCH"



Ça ne sert pas à grand-chose... plutôt Cc: ?

[...]
ADDRLIST=""

foreach /^(To|Cc|Bcc): .*/
{
foreach (getaddr($MATCH)) =~ /.*/
{
ADDRLIST="$ADDRLIST $MATCH"

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.Wanadoo"`
to "$HOME/$DEFAULT/.Wanadoo/"
}
}

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.yyy"`
to "$HOME/$DEFAULT/.yyy/"
}
}
else


[...]

Voila le contenu du maildrop.log

Jun 27 18:01:35 debian maildrop: From: To:
Subject: zzz Match:
File:xxx.eu.org/thierry/Maildir//.Wanadoo

On remarque que la variable ADDRLIST est à , et donc il
n'a traité que le champ "to" du mail alors, qu'il me semblait que la
commande "foreach /^(To|Cc|Bcc): .*/" devait traiter tous les mails des
eventuels headers: to, Cc et bcc.

Qu'en pensez-vous?



La grande boucle commence à construire ADDRLIST, mais le premier if est
exécuté, et le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement.
Il faudrait un « "cc ..." » pour avoir fromage /et/ dessert.



Bonjour,

Mais le problème c'est que je ne veux pas faire de cc vers un autre mail
tout le temps, mais seulement quand par exemple, un mail m'est envoyé et
que le mail dans le champ to etle champ mail du champ cc correspondent
tous deux à des mails à moi.

Si le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement, à quoi
sert le foreach de maildrop?

Car il me semblait qu'il réitérait pour chaque entête autrement dit, un
ppremier tour de boucle avec "To: le mail wanadoo" et un deuxième tour
de boucle avec l'autre mail non?

Mais bon, même si j'arrive à le faire réitérer pour chaque mail, chaque
personne recevra le mail en double vu que maildrop traitera pour chaque
mail dont 2 fois le champ to et cc.

Unesolution serait de voir si Postifx ne peut pas rajouter un tag du
genre "rcpt to" qui permet de savoir exactement à qui est adressé le
mail et comme cça on ne trie que sur cet header là, peut-être... lol.

Merci :-)

A+

Merci :-)



de rien,





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry B
Jacques L'helgoualc'h a écrit :
Thierry B a écrit, dimanche 2 juillet 2006, à 22:54 :
Bonjour,



bonjour,


J'ai un petit soucis avec maildrop, [...]



/Bcc:.*/:h
BCC="$MATCH"



Ça ne sert pas à grand-chose... plutôt Cc: ?

[...]
ADDRLIST=""

foreach /^(To|Cc|Bcc): .*/
{
foreach (getaddr($MATCH)) =~ /.*/
{
ADDRLIST="$ADDRLIST $MATCH"

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.Wanadoo"`
to "$HOME/$DEFAULT/.Wanadoo/"
}
}

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.yyy"`
to "$HOME/$DEFAULT/.yyy/"
}
}
else


[...]

Voila le contenu du maildrop.log

Jun 27 18:01:35 debian maildrop: From: To:
Subject: zzz Match:
File:xxx.eu.org/thierry/Maildir//.Wanadoo

On remarque que la variable ADDRLIST est à , et donc il
n'a traité que le champ "to" du mail alors, qu'il me semblait que la
commande "foreach /^(To|Cc|Bcc): .*/" devait traiter tous les mails des
eventuels headers: to, Cc et bcc.

Qu'en pensez-vous?



La grande boucle commence à construire ADDRLIST, mais le premier if est
exécuté, et le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement.
Il faudrait un « "cc ..." » pour avoir fromage /et/ dessert.



Re,
ok je viens de comprendre, c'est juste un remplacement de "to" par "cc".

Merci :-)

Merci :-)



de rien,





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry B
Jacques L'helgoualc'h a écrit :
Thierry B a écrit, dimanche 2 juillet 2006, à 22:54 :
Bonjour,



bonjour,


J'ai un petit soucis avec maildrop, [...]



/Bcc:.*/:h
BCC="$MATCH"



Ça ne sert pas à grand-chose... plutôt Cc: ?

[...]
ADDRLIST=""

foreach /^(To|Cc|Bcc): .*/
{
foreach (getaddr($MATCH)) =~ /.*/
{
ADDRLIST="$ADDRLIST $MATCH"

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.Wanadoo"`
to "$HOME/$DEFAULT/.Wanadoo/"
}
}

if ((tolower($MATCH)) eq )
{
exception {
`logger -t maildrop -pmail.info "$FR $TO $ADDRLIST $SUB
Match:$MATCH File:$DEFAULT/.yyy"`
to "$HOME/$DEFAULT/.yyy/"
}
}
else


[...]

Voila le contenu du maildrop.log

Jun 27 18:01:35 debian maildrop: From: To:
Subject: zzz Match:
File:xxx.eu.org/thierry/Maildir//.Wanadoo

On remarque que la variable ADDRLIST est à , et donc il
n'a traité que le champ "to" du mail alors, qu'il me semblait que la
commande "foreach /^(To|Cc|Bcc): .*/" devait traiter tous les mails des
eventuels headers: to, Cc et bcc.

Qu'en pensez-vous?



La grande boucle commence à construire ADDRLIST, mais le premier if est
exécuté, et le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement.
Il faudrait un « "cc ..." » pour avoir fromage /et/ dessert.

Merci :-)



de rien,



Re,

Désolé encore de renvoyer un autre mail, mais je constatte mnt que j'ai
testé la modif, quelque chose de surprenant.
Donc dans mes 2 sous repertoires .Wanadoo et .yyy, je recois le mail 2
fois ce qui est logique, mais par contre, dans ma boite de reception
principale (ce qui correspond logiquement au "else" de mon maildroprc),
je l'ai en 12 exemplaires lol.

Une idée? :-)

Merci :-)

A+


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Thierry B a écrit, lundi 3 juillet 2006, à 18:07 :
Jacques L'helgoualc'h a écrit :
> [...]
> La grande boucle commence à construire ADDRLIST, mais le premier if est
> exécuté, et le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement.
> Il faudrait un « "cc ..." » pour avoir fromage /et/ dessert.

Bonjour,

Mais le problème c'est que je ne veux pas faire de cc vers un autre mail
tout le temps, mais seulement quand par exemple, un mail m'est envoyé et
que le mail dans le champ to etle champ mail du champ cc correspondent
tous deux à des mails à moi.



Il suffit alors d'un

if ( $CC =~ /regexp1/ && $TO =~ /regexp2/ )
{
cc dest1
to dest2
}

Si le « "to "$HOME/$DEFAULT/.Wanadoo/" » termine le traitement, à quoi
sert le foreach de maildrop?



La commande "to qqpart" /termine/ l'exécution du script maildrop, et
donc de la boucle foreach ; un "cc" fait exactement la même livraison,
mais d'une copie, et la boucle peut continuer...

Car il me semblait qu'il réitérait pour chaque entête autrement dit, un
ppremier tour de boucle avec "To: le mail wanadoo" et un deuxième tour
de boucle avec l'autre mail non?



Oui, à condition d'éviter « to » (ou « exit »...) dans la boucle.

Mais bon, même si j'arrive à le faire réitérer pour chaque mail, chaque
personne recevra le mail en double vu que maildrop traitera pour chaque
mail dont 2 fois le champ to et cc.



Ben oui, fromage et dessert.

Unesolution serait de voir si Postifx ne peut pas rajouter un tag du
genre "rcpt to" qui permet de savoir exactement à qui est adressé le
mail et comme cça on ne trie que sur cet header là, peut-être... lol.



En principe, Postfix a fini son boulot(*), en passant le mail au MDA ;
il vaut mieux éviter de reposter, pour éviter les risques de boucles
infernales. Maildrop peut éventuellement rajouter des en-têtes à l'aide
de reformail.

(*) En fait, fetchmail peut passer directement le mail à maildrop.


Merci :-)



> de rien,


--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Thierry B a écrit, lundi 3 juillet 2006, à 19:37 :
Jacques L'helgoualc'h a écrit :


[...]
Donc dans mes 2 sous repertoires .Wanadoo et .yyy, je recois le mail 2
fois ce qui est logique, mais par contre, dans ma boite de reception
principale (ce qui correspond logiquement au "else" de mon maildroprc),
je l'ai en 12 exemplaires lol.



Dans le else, il faudrait faire un exit si l'une des deux livraisons a
été effectuée...

Une idée? :-)



Un truc qui boucle ? Est-ce que les 12 exemplaires ont des en-têtes
identiques ? Ça s'arrête à 12 ?

C'est un simple essai direct de maildrop, ou Postfix les voit passer ?

Merci :-)



Pas de quoi.
--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry B
Jacques L'helgoualc'h a écrit :
Thierry B a écrit, lundi 3 juillet 2006, à 19:37 :
Jacques L'helgoualc'h a écrit :


[...]
Donc dans mes 2 sous repertoires .Wanadoo et .yyy, je recois le mail 2
fois ce qui est logique, mais par contre, dans ma boite de reception
principale (ce qui correspond logiquement au "else" de mon maildroprc),
je l'ai en 12 exemplaires lol.



Dans le else, il faudrait faire un exit si l'une des deux livraisons a
été effectuée...

Une idée? :-)



Un truc qui boucle ? Est-ce que les 12 exemplaires ont des en-têtes
identiques ? Ça s'arrête à 12 ?



Oui (enfin j'ai pas regardé tous les entetes en détail mais d'apparance,
c'est les mêmes champs to et cc) et ça s'arrête bien à 12.

C'est un simple essai direct de maildrop, ou Postfix les voit passer ?



Non, postfix les voit passer.

Merci :-)



Pas de quoi.





--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Thierry B a écrit, lundi 3 juillet 2006, à 20:34 :
Jacques L'helgoualc'h a écrit :


[...]
> Un truc qui boucle ? Est-ce que les 12 exemplaires ont des en-têtes
> identiques ? Ça s'arrête à 12 ?

Oui (enfin j'ai pas regardé tous les entetes en détail mais d'apparance,
c'est les mêmes champs to et cc) et ça s'arrête bien à 12.



Il faudrait déboguer la boucle foreach ; comme ton courrier arrive deux
fois, si la faute est dans maildrop, ça voudrait dire que le else est
exécuté six fois... augmente le verbose, et/ou écrit le $MATCH du
foreach dans un fichier ? Ce sont les seuls courriers multipliés ?

> C'est un simple essai direct de maildrop, ou Postfix les voit passer ?

Non, postfix les voit passer.



Si c'est postfix qui boucle, essaie d'ajouter un Received: au passage ?
Ou cherche dans les logs, en augmentant aussi la verbosité.
--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Thierry B
Jacques L'helgoualc'h a écrit :
Thierry B a écrit, lundi 3 juillet 2006, à 20:34 :
Jacques L'helgoualc'h a écrit :


[...]
Un truc qui boucle ? Est-ce que les 12 exemplaires ont des en-têtes
identiques ? Ça s'arrête à 12 ?


Oui (enfin j'ai pas regardé tous les entetes en détail mais d'apparance,
c'est les mêmes champs to et cc) et ça s'arrête bien à 12.



Il faudrait déboguer la boucle foreach ; comme ton courrier arrive deux
fois, si la faute est dans maildrop, ça voudrait dire que le else est
exécuté six fois... augmente le verbose, et/ou écrit le $MATCH du
foreach dans un fichier ? Ce sont les seuls courriers multipliés ?

C'est un simple essai direct de maildrop, ou Postfix les voit passer ?


Non, postfix les voit passer.



Si c'est postfix qui boucle, essaie d'ajouter un Received: au passage ?
Ou cherche dans les logs, en augmentant aussi la verbosité.



Merci :-)

Je ferai ces tests là demain, mais avant de mettre les "to" en "cc", je
n'avais pas tous ces mail recus en 12 exemplaires dans ma boite
princiaple, c'est juste après la précédente modif de maildrop que j'ai
eu ça, donc on ne peut pas éliminer postfix de la source de ce pb?



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Thierry B a écrit, mardi 4 juillet 2006, à 00:27 :
[...]
Je ferai ces tests là demain, mais avant de mettre les "to" en "cc", je
n'avais pas tous ces mail recus en 12 exemplaires dans ma boite
princiaple, c'est juste après la précédente modif de maildrop que j'ai
eu ça, donc on ne peut pas éliminer postfix de la source de ce pb?



Il faudrait d'abord revoir la logique du maildroprc pour éviter les
doublons --- mais je vois mal comment un mail peut générer six copies
superflues. Donc, essaie d'abord de déboguer le fonctionnement de ta
boucle foreach.

Par ailleurs, fetchmail ---> postfix --> maildrop est un détour inutile,
autant simplifier le problème.
--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
1 2