2009-09-20 12:34:28 +02:00
|
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<!DOCTYPE html
|
|
|
|
|
PUBLIC "-//ENS/Tuteurs//DTD TML 1//EN"
|
|
|
|
|
"tuteurs://DTD/tml.dtd">
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>Procmail</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h1>Filtrer son courrier électronique avec procmail</h1>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h2>À quoi sert procmail ?</h2>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Procmail est un programme très puissant qui sert à filtrer les
|
|
|
|
|
courriers électroniques. Grâce à lui, vous pouvez rediriger votre
|
|
|
|
|
mail, le trier ou encore vous protéger contre le spam.
|
2003-09-08 13:33:05 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Pour donner des instructions à <code>procmail</code>, il vous faut
|
|
|
|
|
créer un fichier nommé <code>.procmailrc</code> (dans le monde Unix,
|
|
|
|
|
les fichiers commençant par un point et terminant par « rc » sont
|
2005-05-09 09:51:17 +02:00
|
|
|
|
souvent des fichiers de configuration).
|
2003-09-08 13:33:05 +02:00
|
|
|
|
</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2003-05-10 10:00:02 +02:00
|
|
|
|
<div class="attention"><h1><img
|
|
|
|
|
src="&url.tuteurs;icones/panneau_attention.png" alt="/!\" />
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Attention ! <img src="&url.tuteurs;icones/panneau_attention.png"
|
|
|
|
|
alt="/!\" /></h1> Lisez bien l'<strong>intégralité</strong> de ce
|
2005-05-09 09:51:17 +02:00
|
|
|
|
tutorial, surtout les avertissements, avant d'installer un
|
2003-05-10 10:00:02 +02:00
|
|
|
|
<code>.procmailrc</code>. Procmail est un outil puissant et
|
|
|
|
|
dangereux. Vous risquez de perdre des courriers importants en
|
2009-09-20 12:27:14 +02:00
|
|
|
|
recopiant n'importe quoi à tort et à travers. Mieux vaut passer 5 minutes
|
|
|
|
|
de plus à lire tout plutôt que devoir dire coucou au SPI parce que vous
|
2003-05-18 21:32:21 +02:00
|
|
|
|
aurez perdu du courrier... </div>
|
2003-05-10 10:00:02 +02:00
|
|
|
|
|
2004-08-24 04:59:45 +02:00
|
|
|
|
<h2><a name="procmailrc">Ce que doit contenir un <code>.procmailrc</code></a></h2>
|
2003-09-08 13:33:05 +02:00
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Commencez par créer un fichier nommé <code>.procmailrc</code> avec
|
|
|
|
|
votre éditeur préféré, puis copiez-collez les instructions qui suivent
|
|
|
|
|
(nous vous expliquons ci-dessous ce qu'elles veulent dire) :
|
2003-09-08 13:33:05 +02:00
|
|
|
|
</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
PATH=/bin:/usr/bin
|
|
|
|
|
MAILDIR=$HOME/Mail
|
2003-08-01 11:28:58 +02:00
|
|
|
|
SPAMBOX=spam
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Explication ligne par ligne :</p>
|
2003-09-08 13:33:05 +02:00
|
|
|
|
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<dl>
|
|
|
|
|
<dt><code>PATH=/bin:/usr/bin</code></dt>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<dd>On indique à procmail le chemin des programmes qu'il va
|
2002-12-16 07:21:00 +01:00
|
|
|
|
utiliser.</dd>
|
|
|
|
|
<dt><code>MAILDIR=$HOME/Mail</code></dt>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<dd>On indique à procmail où se trouve votre répertoire de mail.</dd>
|
2003-08-01 11:28:58 +02:00
|
|
|
|
<dt><code>SPAMBOX=spam</code></dt>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<dd>Cette ligne crée une « boîte à spam » (le répertoire
|
|
|
|
|
<code>$HOME/mail/spam</code>) dans votre boîte aux lettres. C'est là
|
2004-02-20 16:53:28 +01:00
|
|
|
|
que partiront les courriers suspects. Voir <a href="#spambox">infra</a>.</dd>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</dl>
|
|
|
|
|
|
2003-09-08 13:33:05 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Ces instructions de début sont la base pour faire marcher correctement
|
2003-09-08 13:33:05 +02:00
|
|
|
|
<code>procmail</code>, mais en soi, elles ne suffisent pas. Il vous
|
2009-09-20 12:27:14 +02:00
|
|
|
|
faudra spécifier, dans la suite du fichier, ce que vous voulez filtrer
|
|
|
|
|
à l'aide de règles de filtrage. C'est ce que nous vous expliquons
|
2003-09-08 13:33:05 +02:00
|
|
|
|
ci-dessous.
|
|
|
|
|
</p>
|
|
|
|
|
|
2004-02-20 16:53:28 +01:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Vous pouvez aussi ajouter la ligne suivante :
|
2004-02-20 16:53:28 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
LOGFILE=$MAILDIR/procmail.log
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p class="continue">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Ceci demande à Procmail de créer un journal (<i lang="en">log</i> en
|
|
|
|
|
anglais) de ce qu'il fait. Ce journal est très précieux pour faire des
|
|
|
|
|
tests, mais quand on l'oublie il prend très rapidement beaucoup de
|
|
|
|
|
place. Songez à l'effacer régulièrement quand vous en faites un.
|
2004-02-20 16:53:28 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<div class="attention">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>Syntaxe :</strong> les retours à la ligne sont importants. Ne
|
|
|
|
|
recopiez pas tout à la suite. Les lignes commençant par # sont des
|
|
|
|
|
commentaires. De manière générale, ne prennez pas d'initiative pour
|
|
|
|
|
changer les recettes présentées ici si vous ne savez pas ce que vous
|
2004-02-20 16:53:28 +01:00
|
|
|
|
faites. </div>
|
2003-09-08 13:33:05 +02:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h2>Comment ça marche ?</h2>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h3>Les règles de filtrage</h3>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Les « recettes » (<i lang="en">recipes</i>) sont les éléments de
|
|
|
|
|
base du <code>.procmailrc</code>. Leur principe est le suivant :
|
|
|
|
|
on commence par spécifier des conditions (une condition dit à procmail
|
2002-12-16 07:21:00 +01:00
|
|
|
|
ce qu'il doit regarder dans le courrier, par exemple l'adresse de
|
2009-09-20 12:27:14 +02:00
|
|
|
|
l'expéditeur, ou encore le champ « Sujet ») puis on indique l'action à
|
2002-12-16 07:21:00 +01:00
|
|
|
|
accomplir si les conditions sont remplies (par exemple, rediriger le
|
2009-09-20 12:27:14 +02:00
|
|
|
|
courrier, ou l'envoyer à la poubelle).</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Une recette a toujours le format suivant (le # introduit un
|
2009-09-20 12:27:14 +02:00
|
|
|
|
commentaire pour expliquer le code, vous n'avez pas à recopier la
|
|
|
|
|
partie après le #) :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0 [<a href="#flag">drapeau(x)</a>] [: [<a href="#lock">fichier verrou</a>] ]
|
2003-03-31 19:55:37 +02:00
|
|
|
|
# Les conditions commencent chacune par *
|
|
|
|
|
* condition(s)
|
2009-09-20 12:27:14 +02:00
|
|
|
|
action à accomplir
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2003-09-08 13:33:05 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Chaque recette s'ajoute dans le fichier <code>.procmailrc</code>, à la
|
|
|
|
|
suite du bloc de début (voir <a href="#procmailrc">ci-dessus</a>).
|
2003-09-08 13:33:05 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h3>Expressions régulières</h3>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2003-09-08 13:33:05 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Pour spécifier les conditions, on se sert d'expressions
|
|
|
|
|
régulières. Une expression régulière est une notation permettant de
|
|
|
|
|
définir des schémas de recherche. Pour cela, on se sert de
|
|
|
|
|
métacaractères, aussi appelés jokers.
|
2003-09-08 13:33:05 +02:00
|
|
|
|
</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2004-02-20 16:53:28 +01:00
|
|
|
|
<table class="tableau">
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<tr>
|
|
|
|
|
<th>Joker</th>
|
|
|
|
|
<th>Signification</th>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>^</td>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<td>Début de ligne</td>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>$</td>
|
|
|
|
|
<td>Fin de ligne</td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>.</td>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<td>Un caractère quelconque</td>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>[xy]</td>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<td>N'importe quel caractère dans l'ensemble spécifié</td>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>[^xy]</td>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<td>N'importe quel caractère hors de l'ensemble spécifié</td>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>foo|bar</td>
|
|
|
|
|
<td>foo ou bar</td>
|
|
|
|
|
</tr><tr>
|
|
|
|
|
<td>c*</td>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<td>Un nombre quelconque (même 0) de répétitions du caractère c</td>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</tr>
|
|
|
|
|
</table>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p><br />Quelques exemples :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<ul>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li><code>^From:</code> : cette condition vise toutes les chaînes
|
|
|
|
|
de caractère <code>From:</code> au début d'une ligne. On dirait une
|
|
|
|
|
en-tête de courrier électronique, non ? :-)</li>
|
|
|
|
|
<li><code>^From:.*choupi.*</code> : cette condition vise toutes
|
|
|
|
|
les chaînes de caractère <code>From:</code> au début d'une ligne,
|
|
|
|
|
suivies d'un ou plusieurs caractères, puis de choupi, puis d'un ou
|
|
|
|
|
plusieurs autres caractères. Cette fois, on a défini l'ensemble des
|
|
|
|
|
mails provenant d'une adresse contenant l'expression choupi : de
|
|
|
|
|
cette façon, on vise tous les mails provenant de Choupi, votre
|
2002-12-16 07:21:00 +01:00
|
|
|
|
meilleur ami.</li>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li><code>^(From|Cc|To).*choupi.*</code> cette fois, on vise
|
|
|
|
|
tous les mails qui viennent de Choupi, ceux où Choupi est en Cc:, et
|
|
|
|
|
ceux adressés à Choupi.</li>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</ul>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h3>Rediriger certains mails vers une autre adresse électronique</h3>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<h4>Redirection de base</h4>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Pour rediriger votre courrier électronique vers une autre adresse,
|
2003-09-08 13:33:05 +02:00
|
|
|
|
c'est simple. Ici, on redirige le courrier vers l'adresse
|
|
|
|
|
<code>toto@polenord.pn</code>. Il n'y pas de condition (cela concerne
|
2009-09-20 12:27:14 +02:00
|
|
|
|
tous les mails). Le point d'exclamation (!) sert à dire qu'il faut
|
|
|
|
|
faire une redirection. Ajoutez donc à votre <code>.procmailrc</code>
|
|
|
|
|
la règle suivante :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2003-09-08 13:33:05 +02:00
|
|
|
|
<pre>
|
|
|
|
|
:0
|
|
|
|
|
! toto@polenord.pn
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h4>Redirection avec conditions</h4>
|
|
|
|
|
|
2003-09-08 13:33:05 +02:00
|
|
|
|
<p>
|
2005-05-09 09:51:17 +02:00
|
|
|
|
Toujours plus fort, maintenant. Imaginons que vous soyiez un fan
|
2003-09-08 13:33:05 +02:00
|
|
|
|
de Scoubidou. Votre page web porte sur Scoubidou. Choupi (votre
|
2009-09-20 12:27:14 +02:00
|
|
|
|
meilleur ami, souvenez-vous), vous a aidé à le réaliser. Vous
|
2002-12-16 07:21:00 +01:00
|
|
|
|
souhaitez relayer les courriers qui vous arrivent et qui parlent de
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Scoubidou à Choupi. Avec procmail, vous pouvez le faire.
|
2003-09-08 13:33:05 +02:00
|
|
|
|
</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>:0
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# Concernés : tous les mails dont le sujet contient « Scoubidou »
|
2003-03-31 19:55:37 +02:00
|
|
|
|
* ^Subject:.*Scoubidou.*
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# On forwarde à Choupi
|
2003-03-31 19:55:37 +02:00
|
|
|
|
! choupi@scoubidou-fan.com
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p> Comme vous pourrez le constater, les conditions peuvent porter sur
|
2009-09-20 12:27:14 +02:00
|
|
|
|
tous les champs d'un courrier électronique : From, To, CC, Bcc,
|
2002-12-16 07:21:00 +01:00
|
|
|
|
etc.</p>
|
|
|
|
|
|
2003-05-18 21:32:21 +02:00
|
|
|
|
<p>Ajoutons que dans cet exemple, vous souhaiteriez sans doute vous
|
2009-09-20 12:27:14 +02:00
|
|
|
|
aussi lire les courriers « Scoubidou ». Avec la recette
|
2005-05-09 09:51:17 +02:00
|
|
|
|
ci-dessus, ces
|
2009-09-20 12:27:14 +02:00
|
|
|
|
courriers sont simplement reexpédiés vers Choupi, et vous ne les avez
|
|
|
|
|
jamais dans votre boîte aux lettres. Nous allors utiliser un <a
|
2002-12-16 07:21:00 +01:00
|
|
|
|
name="flag">drapeau</a> (<em lang="en">flag</em>) qui est une sorte
|
|
|
|
|
d'option, qui modifie le comportement standard de procmail. Il suffit
|
2009-09-20 12:27:14 +02:00
|
|
|
|
d'ajouter c après le :0, ce qui demande à procmail de copier dans
|
|
|
|
|
le répertoire de mail les courriers qui arrivent. L'exemple complet
|
|
|
|
|
est donc le suivant :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0 c
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# Concernés : tous les mails dont le sujet contient « Scoubidou »
|
2003-03-31 19:55:37 +02:00
|
|
|
|
* ^Subject:.*Scoubidou.*
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# On forwarde à Choupi
|
2003-03-31 19:55:37 +02:00
|
|
|
|
! choupi@scoubidou-fan.com
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h3>Filtrer le spam</h3>
|
|
|
|
|
|
2003-09-08 15:09:12 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
On appelle « spam » le courrier électronique envoyé en masse, non
|
|
|
|
|
sollicité, généralement publicitaire. Un filtre tel que
|
|
|
|
|
<code>procmail</code> vous permet de lutter contre ce phénomène, mais
|
|
|
|
|
il est plus efficace d'avoir une stratégie d'ensemble combinant
|
|
|
|
|
logiciel anti-spam, filtre et prévention. Référez-vous à notre <a
|
2003-09-08 15:09:12 +02:00
|
|
|
|
href="antispam.html">page anti-spam</a> pour en savoir plus.
|
|
|
|
|
</p>
|
|
|
|
|
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<h4>Filtrer suivant le sujet</h4>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p> La plupart des spams sont des mails provenant d'expéditeurs bidons
|
|
|
|
|
et différents à chaque fois, et qui ont pour point commun de vous
|
|
|
|
|
promettre de l'argent, de vous proposer du Viagra, des diplômes par
|
|
|
|
|
cher, et autres joyeusetés. Procmail vous permet d'identifier plus ou
|
2002-12-16 07:21:00 +01:00
|
|
|
|
moins ces mails en fonction de leur sujet, et de les envoyer
|
2009-09-20 12:27:14 +02:00
|
|
|
|
directement à la poubelle. De même, le filtrage par sujet permet de
|
|
|
|
|
filtrer les mails pyramidaux (chaînes de l'amitié, fausses alertes de
|
|
|
|
|
virus, etc.), que vous pouvez être amené à recevoir plusieurs fois.
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Dans l'exemple suivant, vous allez filtrer tous les mails dont le
|
2009-09-20 12:27:14 +02:00
|
|
|
|
sujet contient le mot « Viagra » en les envoyant vers votre poubelle à
|
2003-08-01 11:28:58 +02:00
|
|
|
|
spam, <code>$HOME/mail/spam</code>. Voire <a href="#spambox">infra</a>
|
|
|
|
|
pour plus d'explication.
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
2003-03-31 19:55:37 +02:00
|
|
|
|
<pre>
|
|
|
|
|
:0
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# Sont visés tous les mails dont le sujet contient Viagra
|
2003-03-31 19:55:37 +02:00
|
|
|
|
* ^Subject: .*Viagra.*
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# Et on les envoie à la poubelle à spam
|
2003-08-01 11:28:58 +02:00
|
|
|
|
$SPAMBOX
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h4>Filtrer suivant l'expéditeur</h4>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p> Dans d'autres cas, vous pouvez très bien connaître l'adresse
|
|
|
|
|
électronique de ceux qui vous spamment. Ce peut être une liste de
|
|
|
|
|
diffusion à laquelle vous avez été abonné, volontairement ou non, et à
|
|
|
|
|
laquelle les administrateurs de la liste ne vous désabonnent pas. La
|
|
|
|
|
recette qu'il vous faut est la suivante : tous les courriers
|
2003-08-01 11:28:58 +02:00
|
|
|
|
provenant de l'adresse <code>spammeur@tagada.com</code> seront
|
2009-09-20 12:27:14 +02:00
|
|
|
|
impitoyablement envoyés dans votre boîte à spam.</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0
|
2003-08-01 11:28:58 +02:00
|
|
|
|
* ^From: .*spammeur@tagada.com
|
|
|
|
|
$SPAMBOX
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2003-03-07 14:59:35 +01:00
|
|
|
|
<h4>Filtrer suivant l'encodage</h4>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Vous recevez beaucoup de mails en provenance de Corée, qui sont un
|
2003-03-07 14:59:35 +01:00
|
|
|
|
charabia illisible. Vous voudriez les filtrer. On rappelle que
|
2009-09-20 12:27:14 +02:00
|
|
|
|
procmail peut filtrer sur n'importe quel en-tête de message. Si vous
|
|
|
|
|
regardez les en-têtes d'un spam coréen (appuyez sur <code>H</code>,
|
|
|
|
|
que vous utilisiez mutt ou pine, pour y avoir accès), vous verrez un
|
|
|
|
|
champ appelé <code>Content-type</code>. Dans ce champ est déclaré
|
2003-03-10 13:26:54 +01:00
|
|
|
|
<code>charset="ks_c_5601-1987"</code>. Il vous suffit de filtrer cet
|
2009-09-20 12:27:14 +02:00
|
|
|
|
encodagespour être débarrassé de la plupart des spams
|
|
|
|
|
coréens :</p>
|
2003-03-07 14:59:35 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0
|
|
|
|
|
* ^Content-Type: .*charset="ks_c_5601-1987"*
|
2003-08-01 11:28:58 +02:00
|
|
|
|
$SPAMBOX
|
2003-03-07 14:59:35 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>De manière plus perverse, certains spams coréens ne déclarent pas
|
|
|
|
|
leur encodage au bon endroit, pour éviter justement ce genre de
|
|
|
|
|
filtres. L'encodage est alors annoncé dans le sujet. Pour y remédier,
|
|
|
|
|
ajoutez simplement :</p>
|
2003-03-07 14:59:35 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0
|
|
|
|
|
* ^Subject: .*EUC-KR.*
|
2003-08-01 11:28:58 +02:00
|
|
|
|
$SPAMBOX
|
2003-03-07 14:59:35 +01:00
|
|
|
|
|
|
|
|
|
:0
|
|
|
|
|
* ^Subject: .*ks_c_5601-1987.*
|
2003-08-01 11:28:58 +02:00
|
|
|
|
$SPAMBOX
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Si vous êtes sûr de ne pas vouloir de mails en encodage coréen, vous
|
|
|
|
|
pouvez mettre ces mails à la poubelle au lieu de les mettre adns la
|
|
|
|
|
boîte à spam. Sur UNIX, la poubelle est
|
|
|
|
|
<code>/dev/null</code>. Attention, contrairement à la poubelle de
|
|
|
|
|
Windows ou MacOS, il n'y a pas de filet de sécurité, on ne peut plus
|
|
|
|
|
récupérer les données une fois poubellisées. Ceci donne :
|
2003-08-01 11:28:58 +02:00
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0
|
|
|
|
|
* ^Subject: .*EUC-KR.*
|
2003-03-07 14:59:35 +01:00
|
|
|
|
/dev/null
|
|
|
|
|
</pre>
|
|
|
|
|
|
2004-02-20 16:53:28 +01:00
|
|
|
|
<div class="attention">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>Attention</strong> : la présence d'un <code>/dev/null</code>
|
|
|
|
|
dans votre <code>.procmailrc</code> est dangereuse : la moindre
|
2004-02-20 16:53:28 +01:00
|
|
|
|
erreur de syntaxe, la moindre coquille est susceptible d'envoyer tout
|
2009-09-20 12:27:14 +02:00
|
|
|
|
votre mail dans <code>/dev/null</code>, soit le vide intersidéral d'où
|
|
|
|
|
vous ne pouvez récupérer aucun courrier. En cas d'accident, vous
|
2004-02-20 16:53:28 +01:00
|
|
|
|
pouvez vous adresser au <a href="http://www.spi.ens.fr/">SPI</a>, mais
|
2009-09-20 12:27:14 +02:00
|
|
|
|
faites particulièrement attention en éditant votre
|
2004-02-20 16:53:28 +01:00
|
|
|
|
<code>.procmailrc</code>.</div>
|
2003-08-01 11:28:58 +02:00
|
|
|
|
|
|
|
|
|
|
2003-03-07 16:08:59 +01:00
|
|
|
|
<h4>Trop de filtres nuit</h4>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>En installant des filtres anti-spam : vous prenez le risque
|
|
|
|
|
d'écarter des courriers qui en fait n'en sont pas, mais qui répondent
|
|
|
|
|
tout de même à vos règles. Ce sera le cas d'un prof coréen qui vous
|
|
|
|
|
écrit si vous filtrez les encodages coréens, d'un courrier parlant de
|
|
|
|
|
FreeBSD si vous filtrez le mot « free », d'un courrier dont
|
|
|
|
|
le sujet contient « bissextile » si vous filtrez « sex », etc. Plus
|
|
|
|
|
vos règles sont strictes, moins vous recevrez de spam, mais plus vous
|
2004-02-20 16:53:28 +01:00
|
|
|
|
aurez de chances de perdre du courrier.</p>
|
2003-03-07 16:08:59 +01:00
|
|
|
|
|
|
|
|
|
<p>Pour cette raison, il vaut parfois mieux envoyer les courriers
|
2009-09-20 12:27:14 +02:00
|
|
|
|
suspects dans un dossier spécial, appelé « spam », par
|
2003-03-07 16:08:59 +01:00
|
|
|
|
exemple. Voir ci-dessous comment faire.</p>
|
|
|
|
|
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<h3>Envoyer directement certains mails dans un dossier
|
|
|
|
|
particulier</h3>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p> Cette recette est particulièrement utile pour les listes de
|
|
|
|
|
diffusion (<em lang="en">mailing-lists</em>) : vous pouvez envoyer
|
2002-12-16 07:21:00 +01:00
|
|
|
|
tous les courriers provenant de la liste directement dans un dossier
|
2009-09-20 12:27:14 +02:00
|
|
|
|
spécial, qui contiendra seulement les courriers de ce genre.</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p> Admettons que vous apparteniez à la liste des amis de
|
2002-12-16 07:21:00 +01:00
|
|
|
|
Scoubidou. Cette liste a pour adresse
|
|
|
|
|
<code>scoubidou@zoinx.foo</code>, et tous les courriers de la liste
|
2009-09-20 12:27:14 +02:00
|
|
|
|
ont pour champ expéditeur :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
To: Les Amis de Scoubidou <scoubidou@zoinx.foo>
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<p>Vous voulez regrouper les courriers de la liste dans un dossier
|
2009-09-20 12:27:14 +02:00
|
|
|
|
appelé « scoubidou ». La recette qu'il vous faut est la
|
|
|
|
|
suivant :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
2003-03-31 19:55:37 +02:00
|
|
|
|
# Le dernier ":" demande l'utilisation d'un fichier verrou
|
|
|
|
|
:0:
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# La condition : tous les fichiers contenant 'scoubidou@zoinx.foo'
|
2003-03-31 19:55:37 +02:00
|
|
|
|
# dans le champ 'To: '
|
|
|
|
|
* ^To.*scoubidou@zoinx.foo
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# Action : placer tous ces mails dans le dossier « Scoubidou »
|
2003-03-31 19:55:37 +02:00
|
|
|
|
$HOME/Mail/scoubidou
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>À quoi sert le <a name="lock">fichier verrou</a> ? Imaginons
|
|
|
|
|
que deux courriers de la liste arrivent en même temps : deux
|
2002-12-16 07:21:00 +01:00
|
|
|
|
procmails essaieront d'envoyer les deux messages dans le dossier en
|
2009-09-20 12:27:14 +02:00
|
|
|
|
même temps. Si vous utilisez un fichier verrou, le premier procmail
|
|
|
|
|
verrouillera le dossier pendant qu'il écrira son message dans le
|
|
|
|
|
dossier, empêchant ainsi le second message d'y accéder. Une fois que
|
2002-12-16 07:21:00 +01:00
|
|
|
|
le premier procmail aura fait son travail, le second prendra le relais
|
2009-09-20 12:27:14 +02:00
|
|
|
|
en toute sécurité. </p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2004-02-20 16:53:28 +01:00
|
|
|
|
<div class="encadre">
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<strong>À noter :</strong> si vous classez ainsi vos mails, vous
|
|
|
|
|
perdrez les avertissements « You have new mail. » Pour
|
|
|
|
|
remédier à ce problème, il va s'agir d'utiliser une fonctionnalité du
|
2004-02-20 16:53:28 +01:00
|
|
|
|
shell zsh...
|
|
|
|
|
</div>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2004-02-20 16:53:28 +01:00
|
|
|
|
<p>Il suffit d'ajouter dans votre <code>.zshrc</code> la ligne
|
2009-09-20 12:27:14 +02:00
|
|
|
|
suivante :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
MAILPATH="$MAIL:$HOME/mail/Scoubidou?You have new mail in Scoubidou."
|
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Si vous voulez appliquer la même technique à plusieurs dossiers, il
|
|
|
|
|
faut les séparer par des symboles « : » de sorte que si vous êtes
|
2003-04-18 00:07:25 +02:00
|
|
|
|
aussi fan des Schtroumpfs, vous pourrez, en plus de la recette
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<code>procmail</code> adaptée, mettre les lignes suivantes dans votre
|
|
|
|
|
.zshrc :
|
2003-04-18 00:07:25 +02:00
|
|
|
|
</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
2003-04-18 00:07:25 +02:00
|
|
|
|
<pre>
|
|
|
|
|
MAILPATH="$MAIL:$HOME/mail/Scoubidou?You have new mail in Scoubidou.\
|
2003-04-18 00:13:25 +02:00
|
|
|
|
:$HOME/mail/Schtroumpfs?You have new mail in Schtroumpfs."
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h4><a name="spambox">Une « boîte à spam »</a></h4>
|
2003-03-07 16:08:59 +01:00
|
|
|
|
|
2003-08-01 11:28:58 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Une application intéressante de classement concerne le spam. Pour des
|
|
|
|
|
raisons évoquées plus haut, il n'est parfois pas prudent d'envoyer le
|
|
|
|
|
courrier suspect directement vers <code>/dev/null/</code> : vous
|
2003-08-01 11:28:58 +02:00
|
|
|
|
risquez de perdre du vrai courrier. Il vaut mieux parfois rerouter le
|
2009-09-20 12:27:14 +02:00
|
|
|
|
courrier vers une boîte à spam.
|
2003-08-01 11:28:58 +02:00
|
|
|
|
</p>
|
2003-03-07 16:08:59 +01:00
|
|
|
|
|
2003-08-01 11:28:58 +02:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
L'avantage d'une boîte à spam est que vous n'êtes plus dérangé pour
|
|
|
|
|
rien par les avertissements « You have new mail ». Il vous suffit de
|
|
|
|
|
consulter la boîte de temps à autre, toutes les semaines disons, et de
|
2003-08-01 11:28:58 +02:00
|
|
|
|
faire un tri rapide de vrais spams et des faux.
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
<p>
|
|
|
|
|
Prenons un exemple. Beaucoup de spams ont un <code>Content-type</code>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
en <code>text/html</code>, c'est-à-dire du HTML seulement sans copie
|
|
|
|
|
texte. Inversement, il n'y a guère que les spams pour être en
|
|
|
|
|
<code>text/html</code> : les gens normaux avec un logiciel mal
|
|
|
|
|
configuré n'envoient guère que du HTML+ texte (donc un
|
2003-03-07 16:08:59 +01:00
|
|
|
|
<code>Content-type</code> en <code>multipart/alternative</code>). Vous
|
2009-09-20 12:27:14 +02:00
|
|
|
|
voulez donc filtrer le <code>text/html</code>. Mais l'expérience
|
|
|
|
|
prouve que certains logiciels particulièrement malfaisants envoient
|
2003-03-07 16:08:59 +01:00
|
|
|
|
des courriers parfaitement normaux en
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<code>text/html</code>. Solution : envoyer tous ces mails dans la
|
|
|
|
|
boîte à spam.
|
2003-08-01 11:28:58 +02:00
|
|
|
|
</p>
|
2003-03-07 16:08:59 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p>Application :</p>
|
2003-03-07 16:08:59 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0
|
|
|
|
|
* ^Content-Type: text/html.*
|
|
|
|
|
$HOME/Mail/spam
|
|
|
|
|
</pre>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<h4>Recettes imbriquées</h4>
|
2003-03-07 16:08:59 +01:00
|
|
|
|
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<p>
|
2009-09-20 12:27:14 +02:00
|
|
|
|
Un dernier exemple pour la route ! Encore plus fort,
|
|
|
|
|
maintenant ! Nous allons reprendre l'exemple du courrier à
|
|
|
|
|
relayer à votre ami Choupi. Dans l'état où nous vous avions laissé,
|
|
|
|
|
vous saviez lui relayer le courrier contenant « Scoubidou » dans le
|
2002-12-16 07:21:00 +01:00
|
|
|
|
sujet et en garder une copie chez vous. Maintenant nous allons vous
|
2009-09-20 12:27:14 +02:00
|
|
|
|
montrer comment faire ceci, mais en envoyant vos copies à vous dans le
|
|
|
|
|
dossier « Scoubi. » Il s'agit donc d'une recette constituée de deux
|
|
|
|
|
recettes imbriquées (chaque recette commence par un :0,
|
|
|
|
|
souvenez-vous) :</p>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
|
:0:
|
2003-03-31 19:55:37 +02:00
|
|
|
|
* ^Subject:.*Scoubidou.*
|
2002-12-16 07:21:00 +01:00
|
|
|
|
{
|
2009-09-20 12:27:14 +02:00
|
|
|
|
:0 c
|
2003-03-31 19:55:37 +02:00
|
|
|
|
# On fait suivre vers Choupi
|
|
|
|
|
! choupi@scoubidou-fan.com
|
2009-09-20 12:27:14 +02:00
|
|
|
|
# et en plus de ça...
|
|
|
|
|
:0
|
|
|
|
|
# ... on dépose la copie dans le dossier « Scoubi »
|
2003-03-31 19:55:37 +02:00
|
|
|
|
$HOME/Mail/scoubi
|
2002-12-16 07:21:00 +01:00
|
|
|
|
}
|
|
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
|
<h2>Conclusion</h2>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<p> Ceci ne montre qu'une partie des possibilités de procmail. Vous
|
|
|
|
|
pouvez faire beaucoup de choses plus compliquées mais tout aussi
|
|
|
|
|
utiles : ajouter systématiquement un champ (Reply-To, par
|
|
|
|
|
exemple), éviter les boucles... Pour davantage de renseignements,
|
2004-01-08 23:27:51 +01:00
|
|
|
|
consultez les pages de man (si vous ne savez pas ce qu'est une page de
|
|
|
|
|
man, consultez notre <a href="&url.tuteurs;unix/aide.html">page sur
|
2009-09-20 12:27:14 +02:00
|
|
|
|
l'aide en ligne d'Unix</a>) :
|
2002-12-16 07:21:00 +01:00
|
|
|
|
</p>
|
|
|
|
|
|
2004-01-08 23:27:51 +01:00
|
|
|
|
<ul>
|
|
|
|
|
<li> <code>man procmail</code> est une description de procmail
|
2009-09-20 12:27:14 +02:00
|
|
|
|
lui-même. Vous y trouverez les options de procmail.
|
2004-01-08 23:27:51 +01:00
|
|
|
|
</li>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> <code>man procmailrc</code> est très complet mais indubitablement
|
|
|
|
|
compliqué.</li>
|
2004-01-08 23:27:51 +01:00
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> <code>man procmailsc</code> est à réserver aux experts de
|
2004-01-08 23:27:51 +01:00
|
|
|
|
procmail.
|
|
|
|
|
</li>
|
|
|
|
|
|
2009-09-20 12:27:14 +02:00
|
|
|
|
<li> <code>man procmailex</code> propose des exemples prêts à
|
2004-01-08 23:27:51 +01:00
|
|
|
|
utilisation. C'est sans doute la page de man la plus utile pour celui
|
|
|
|
|
qui veut se familiariser davantage avec procmail.
|
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
2002-12-16 07:21:00 +01:00
|
|
|
|
<div class="metainformation">
|
2009-09-27 22:00:55 +02:00
|
|
|
|
Auteur Marie-Lan Nguyen. <date value="from git" /></div>
|
2002-12-16 07:21:00 +01:00
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|