
   Mthode de messagerie off-line pour Linux (Adresses e-mail off-line avec

   un compte)

Gunther Voet, freaker@tuc.ml.org - Belgium (CompuMed/TuCSRV) Traduction par
Thierry Le Quau ThierryLeQueau@wanadoo.fr

   v1.3.2, 7 Fvrier 1998
     _________________________________________________________________

   _Utilisez votre systme de messagerie Linux hors connexion, recevez du
   courrier pour plusieurs utilisateurs avec seulement une adresse
   e-mail, et sans tre connect 24/24. Si vous n'avez pas les moyens de
   payer une ligne directe pour tre connect 24/24 et voulez quand mme
   que vos utilisateurs recoivent leur courrier dans leur bote  lettre
   Linux; au lieu de payer un service de diffusion multi-utilisateur 
   votre fournisseur d'accs, vous pouvez utiliser ce systme pour
   redistribuer aux diffrents comptes utilisateur le courrier en
   utilisant une seule adresse e-mail. Vous pouvez y avoir accs 24/24
   depuis le serveur o vous avez votre compte pour recevoir votre
   courrier. Ce howto est Copyright (c)1997-98 par Gunther Voet._
     _________________________________________________________________

1. Prface.

   Dans ce chapitre je veux juste me mettre  l'abri de tous dommages et
   de retour de flamme - mme si je peux avoir tort ...Si vous avez des
   questions ou suggestions  rajouter aux FAQ ainsi que les erreurs que
   vous pourriez trouver, voir la section concerne plus loin ...

   Nota : tous les noms et types de fichier sont repertoris ainsi :

     (*** < file > *** text ***) .procmailrc

   Il s'agit donc d'un fichier .procmailrc contenant du texte. La
   variable texte peut aussi tre code. Cela pour dfinir le nom du
   fichier  utiliser. S'il n'y a pas de chemin, vous pouvez le choisir 
   votre convenance (dans la plupart des cas ces fichiers rsident dans
   le rpertoire de l'utilisateur comme /home/mailer).

1.1 D'un point de vue lgal.

   Ni l'auteur, ni les distributeurs de ce HowTo ne peuvent tre tenu en
   aucun cas pour responsable des dommages physiques, financiers ou
   moraux qui pourraient rsulter de l'application des suggestions ou
   exemples de ce texte. L' information contenue dans ce document est la
   quintescence de mon savoir et de mon exprience, mais je peux encore
   faire des erreurs dans les informations ou les exemples. Chaque marque
   commerciale est la proprit de son dtenteur respectif (je ne veux
   pas faire de commerce ici - mais, bon - SI je veux rajouter quelque
   chose, je n'aurais pas besoin de modifier cette dclaration). Si votre
   chat meurt sous la charge de ce document, je n'en suis pas plus
   responsable ...

1.2 Copyrights

   Ce document et son contenu sont copyright (c)1997-98 de Gunther Voet.
   Toute reproduction non autorise sous toute forme que ce soit est
   explicitement autorise et mme chaudement encourage tant que vous
   n'en changez pas le contenu sans contacter l'auteur (Gunther Voet). Si
   vous utilisez ce document en entier ou en partie, vous devez y inclure
   une allusion au copyright ou un lien vers le HowTo complet." Les
   droits de copie des documents Howto sont rgits par leurs auteurs
   respectifs. Le "HowTo Copyright" donnera les directives de copie pour
   ce document. S'il est utilis dans un but commercial, l'auteur doit en
   tre averti. Les exceptions  ce copyright doivent tre demand 
   l'auteur par lettre ou par e-mail. Pour plus d'information sur le
   standard de diffusion des HowTo contacter gregh@sunsite.unc.edu.

   *SVP* *SI* vous voulez crer un systme bas sur ce HowTo, pensez 
   mon copyright :) heh... - je ne suis pas mchant :)). Bien sr en tant
   qu'addon - PAS pour le programme de mail lui-mme - bien que ce soit
   agrable d'y tre inclus :))Je peux toujours avoir une adresse
   supplmentaire pour tre encore plus critiqu :)) (je plaisante).

1.3 Ractions.

   J'espre que ce HowTo vous sera utile ainsi qu' tous ceux qui le
   voudront. Si vous avez des suggestions, commentaires ou corrections (
   excepts les injures :) ) - svp expdiez les moi  freaker@tuc.ml.org
   et j'en ferai la mise  jour pour la prochane version. Si vous
   publiez ce document dans un but commercial, une copie supplmentaire
   sera apprcie - vous pouvez me l'envoyer  mon adresse postale. Pour
   les critiques - vous pouvez me les expdier, mais elle finirons dans
   le rpertoire /dev/null ... aussi - ce n'est pas la peine encombrer la
   bande passante avec ! En plus je peux empcher certains utilisateurs
   de recevoir des e-mail (expliqu dans ce document) (evil grin). Mon
   surnom est "freaker btw" :) ). Vous pouvez toujours essayer
   freaker@ibm.net.

1.4 Distribution.

   La dernire version de ce document peut tre tlcharge  l'adresse:

   http://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/Offline-Mailing

   -et-

   http://tuc.ml.org/om/

   (essayez aussi  : http://tuc.ml.org)

1.5 Corrections.

 v1.0.0        - Premire version, test interne, nous l'avons essay avant de
                 vous le donner :) ..  depuis il devient oprationnel et a
                 besoin de travailler ? vrai ? :)
 v1.1.0        - Corrections de nombreuses erreurs dans le texte, ajout de
                 nouveaux chapitres
               - Corrections de quelques petites erreurs et typographie ...
 v1.2.0        - Corrections d'erreurs grammaticales
               - Addon du chapitre "Qu'est-ce que nous utilisons ? "
               - Addon de l'adresse de Sunsite
 v1.3.0        - Addon du support courrier virtuel pour l'administrateur
               - Nouveau site et adresse e-mail
               - Remerciements  ..
 v1.3.1        - Conversion au format sgml et corrections d'erreurs mineures
 v1.3.2        - Corrections d'erreurs majeures ( nom de fichier .fetchmailrc
                 vers .procmailrc) etc. (merci  Tetsu Isaji)
               - Addon douveau support pour "Sendmail" v 8.8.0+
               - Corrections d'erreurs mineures
               - Mise  jour de mon systme YAY !
               - La version japonaise arrivera bientt, je vous signalerais
                  son emplacement ds que je le connatrai ...
                  (merci  Tetsu Isaji)

1.6 Qu'est-ce que j'utilise ?

   J'utilise Linux 2.0.30, un Pentium 166, carte ATI pci-mach64, Metro-X
   et une connexion internet par mon fournisseur d'accs (actuellement
   ibmnet) via ppp en utilisant un modem ZyXEL 28 800 bauds, et de temps
   en temps un Bausch 28 800.

   Maintenant j'ai mis  jour mon noyau  la version 2.0.33, install un
   modem USRobotics, il fonctionne encore comme il le devrais :) (tout le
   monde devrait mettre  jour leur version Linux ds qu'il sort un patch
   :) croyez moi:) a vous pargnera beaucoup de temps et de recherche
   d'erreur en le faisant :).

1.7 Remerciements  ...

     * Fred, durban.hebel.net (pour autoriser les pages & bot)
     * Lifesaver, parkside.net ( pour la validation des nouvelles pages,
       aide pour la foire aux questions de la messagerie, depuis a
       marche ici et l ... faites une visite  son ciber-caf ... leur
       caf est super bon :) )
     * L'administrateur systme de lodus.net pour la maintenance de ce
       projet.

2. Preliminaires.

   Bon, comment fonctionne ce systme? Qu'est-ce que vous pouvez faire
   avec ? Quoi d'autres ? Et ai-je besoin de le lire ? A toutes ces
   questions - j'ai une rponse.

2.1 Prface & Description

   Ce HowTo est ddi  tous les utilisateurs de mailing offline sous
   Linux... Vous tes un groupe, ou une organisation, et vous voulez que
   tous vos membres aient une adresse e-mail, sans pour autant payer pour
   un accs direct 24/24 ou un compte pour chaque utilisateur.... Ou vous
   avez un rseau interne - avec un serveur camoufl et vous voulez que
   tous les utilisateurs aient une adresse e-mail, vous pouvez utiliser
   cette mthode pour le faire. Personnellement je l'utilise pour fournir
   aux utilisateurs et membres de mon groupe de dmo un compte e-mail
   sans tre 24/24 connect, puisque c'est  but non lucratif - et nous
   n'avons pas beaucoup d'argent pour nous payer un ligne directe avec un
   accs e-mail permanent - et diffrentes adresses IP. Tous ont une
   adresse e-mail, mme s'ils n'ont pas accs  internet. Le seul  avoir
   un accs internet peut recevoir leur courrier  leur adresse
   personnelle - via le systme dcrit ci-dessous. Vos utilisateurs
   peuvent expdier leur courrier comme ils ont l'habitude de le faire,
   et votre systme grera les diffrentes boites aux lettres. La seule
   chose qui change pour les utilsateurs est l'ajout de leur adresse
   e-mail dans l a ligne du sujet ou de l'entte suivant la mthode
   choisie.

2.2 L'intrt d'une telle chose ...

     * Permettre de contacter tous les membres d'une organisation par
       adresse e-mail si ncessaire.
     * Un service de mail anonyme - ils ne peuvent lire votre "mail setup
       file" - aussi ils ne peuvent savoir o le courrier est retransmis
       ou suivi.
     * Un club qui n'a pas assez de sou (ne riez pas), ou qui est
       gratuit, et ne veut pas dpenser de l'argent pour a (eh eh) - et
       qui veut quand mme fournir une adresse e-mail  chacun de ses
       membres.
     * Un rseau camoufl - avec un serveur connect sur le net, dont les
       utilisateurs ont besoin d'avoir compte e-mail.
     * Vous voulez retransmettre certains documents automatiquement -
       comme je le fais avec mon HowTo, statistiques, ou documents ...
       comme "info@yourmail.dom" ou "document@yourmail.dom".
     * Vous avez seulement besoin d' un compte chez votre fournisseur
       d'accs, pour les +200 comptes e-mail que vous pouvez crer sur
       votre serveur.
     * J'utilise la mthode B avec plus de 300 comptes e-mail avec un
       serveur perso  base de 486DX4-100 et le tout fonctionne en une
       minute.

2.3 Les choses  connatre.

     * Tous les serveurs de mail (gratuit ou non) ne sont pas contents
       quand vous faites leur boulot chez vous, ou mettez en place un
       serveur anonyme, aussi SVP essayez de contacter votre
       administrateur rseau avant de le faire.
     * C'est un moyen moins rapide qu'une connection on-line 24/24
       puisque vous devez vous connecter pour distribuer le courrier.
     * Cette mthode  besoin d'un administrateur pour grer la
       distribution du courrier et ajouter des utilisateurs ... a vous
       donnera un peu de boulot ce n'est pas automatique ! (je l'ai rendu
       semi-automatique sur mon serveur vous pouvez essayer de faire de
       mme).
     * Une bonne bande passante et un espace virtuel consquent chez
       votre fournisseur d'accs est indispensable quand vous avez
       plusieurs utilisateurs ... et soyez sr d'y avoir assez de place
       quand vous expdiez les fichiers.
     * Tout le courrier sera transfr en une seule fois - aussi - le
       dernier message que vous recevrez sur votre serveur sera aussi le
       dernier que vous aurez expdier. "Premier entr - premier sorti".
     * Dans la premire mthode (to : ) il n'y a pas de problme avec les
       noms des diffrents utilisateurs - mais dans la seconde mthode -
       vous ne pouvez pas donner de sujet puisqu'il sera utilis pour la
       dlivrance  son destinataire. Beaucoup d'utilisateurs oublient
       d'utiliser le sujet du message... - ou ils ont besoin de le savoir
       clairement.
     * Si vous vrifiez souvent votre messagerie sur le serveur, (par
       exemple 4 fois par jour) - le courrier sera distribu  son
       destinataire au moins toutes les 6 heures. Aussi le traitement
       devient presque rgulier.
     * Vous POUVEZ l'utiliser galement lorsque vous avez un accs
       permanent :) et lui faire vrifier le courrier toutes les XX
       minutes. Mais - quand vous tes connect - pourquoi utiliser un
       autre serveur ? et pourquoi ne pas avoir alors votre propre
       domaine ? (fric).

2.4 Il y a deux voies diffrentes...

    1. methode 'A' - que nous appellerons "(m(A))". Le systme de
       courrier vrifie le destinataire du message d'aprs le "to:".
       C'est la meilleure mthode puisque c'est l'adresse e-mail relle .
       Vous avez besoin d'un autre compte sur un serveur ET avez
       besoin'une entre DNS (MX) (votre propre domaine en l'occurrence).
       Si l'administrateur systme veux bien vous aider, alors il n'y
       aura aucun problme ! Il redirigera TOUS les messages envoys au
       nom de votre domaine sur votre compte ! Cela lui prendra du temps
       pour le faire :) aussi soyez sympa avec lui :)) Merci  mon
       administrateur systme (Fred) j'ai obtenu un nom de domaine et le
       service utilisateur pour mon groupe de dmo. Il se peut qu'une
       entre DNS vous cote quelque chose,aussi vous aurez  voir si a
       vous convient ou non.
    2. methode 'B' - que nous appellerons "(m(B))". Le programme va voir
       la ligne du sujet, et transfre le courrier vers l'utilisateur
       concern. Si l'utilisateur n'est pas trouv, il renverra un
       message. Cela demande un serveur POP avec un seul compte, et vous
       n'avez pas besoin de votre propre entre DNS ou vous n'avez pas
       besoin d'tre gentil avec votre administrateur systme pour qu'il
       vous arrange votre adresse e-mail :). J'ai utilis cette mthode
       la premire fois pendant prs d'un an... je sais que c'est un peu
       truander, mais je ne vous ai pas dit que vous deviez utiliser
       cette mthode, aussi ne me tirez pas dessus - alors que je suis
       juste en train de vous fournir des solutions pour vos problmes de
       messagerie :) - vous pouvez utiliser la mthode A qui est elle
       rglo !

3. Vos besoins.

   Bon, vous avez besoin (bien sr) d'une bcane sous Linux, qui peut se
   connecter  internet - Ok ! (que je suis bon - que je suis bon ! :)) -
   vous avez probablement un modem, pas vrai ? Une ligne tlphonique -
   ou n'importe quel moyen de vous connecter  votre fournisseur d'accs.
   Vous avez besoin aussi de quelque software comme Fetchmail, Procmail,
   un compte supplmentaire, et votre compte e-mail ou d'une entre DNS
   avec un compte e-mail.

3.1 Une machine sous Linux

   Ca peut-tre n'importe quelle bcane... mme un 8086... - mais il est
   prfrable - puisqu'il y aura quelques chargements  effectuer - de
   possder au moins un 386 :) plus votre babasse ira vite, plus votre
   logiciel sera rapide (pas vrai ?) :).

3.2 Un compte supplmentaire sur votre machine sous Linux.

   Vous avez besoin de crer un compte supplmentaire sur votre systme.
   J'utilise pour mon exemple  mailservice . Cpeut tre aussi bien
   "mailserver" ou "mailtousers" - bref un nom que vous reconnaitrez !

   ! Vous n'avez pas besoin d'tre logu root !

   Ce compte vous servira  attribuer tous les messages aux diffrents
   destinataires de votre systme, ou les envoyer vers l'extrieur :)).
   Crez-le juste comme simple utilisateur. Vous aurez besoin de faire
   des tests sur ce compte, et l'administrateur du courrier peut
   l'utiliser pour le distribuer sans

   tre pour autant root - c'est bien plus sr !

3.3 Fetchmail

   J'utilise la version 1.9 avec le patch 9... je l'ai trouv  l'adresse
   ftp://sunsite.unc.edu et j'utilise seulement ce programme de mail dans
   mon exemple -  vous de voir si vous en prfrez un autre, vous tes
   seul juge ! Pour ma part il me satisfait :). Si vous le voulez plus
   personnalis vous devrez consulter le manuel de Fetchmail :). Il peut
   tre install comme root aussi bien que comme simple utilisateur... le
   mieux est de l'installer comme root :) puisque je suis sr qu'il
   fonctionne bien :).

3.4 Procmail

   J'utilise la version 3.10 - vous la trouverez aussi 
   ftp://sunsite.unc.edu, je pense que c'est le meilleur mda (mail
   delivery agent) sur le march... Il gre merveilleusement et est bien
   mieux que l'agent par dfaut puisqu'il dlivre les messages
   utilisateur par utilisateur ! Pour l'installation je vous donne les
   mmes conseils que pour Fetchmail.

3.5 Un compte e-mail.

   Vous aurez toujours besoin d'un compte e-mail -  partir duquel vous
   pourrez retirer vos messages. Un serveur POP - qui vous permet de
   retirer votre courrier quand vous le souhaitez, et qui permet aux
   diffrents utilisateurs d'envoyer des e-mail 24/24. Ca peut tre aussi
   bien un service de messagerie gratuit que payant - bien que votre
   compte e-mail soit suffisant. Avec la mthode B (adresse dans le corps
   du sujet) vous n'avez besoin de rien d'autre - par contre la mthode A
   (adresse dans le champ "to ") en demande un peu plus - suivez le guide
   !

  Un enregistrement DNS (MX).

   Requis pour faire fonctionner votre propre domaine de messagerie - il
   est indispensable puisque l'administrateur de votre fournisseur ne
   peut pas utiliser son domaine  l'usage exclusif de vos utilisateurs -
   il a d'autres clients qui ont besoin aussi d'tre contacts et qui
   pourraient interfrer avec vos utilisateurs. Et vos enttes de
   messages doivent tre filtres sur ce domaine. Ce qui vous donne un
   domaine autonome pointant sur SON domaine. Par contre a vous cotera
   un peu plus cher, ou vous pouvez demander  votre administrateur
   systme de rajouter une adresse impersonnelle pointant sur son
   serveur, cependant a doit tre un autre domaine que le sien !

  Faire suivre le courrier de compte  compte :)

   Bien, l'administrateur sytme a besoin de faire suivre tous les
   messages destins  votre domaine sur votre compte... c'est une tche
   relativement aise pour lui s'il sait le faire :) ..sinon il devra
   lire le manuel du sendmail :) ( ou qmail ). Vous rcuprez votre
   courrier sur votre compte et voil ! Tous les messages seront
   redistribus sur votre propre domaine.

4. Bon, j'ai tout ce qu'il me faut, et maintenant ?

   Vous avez cr votre compte supplmentaire, rcupr votre adresse
   e-mail et/ou l'entre DNS pour rerouter sur votre compte... Procmail
   et Fetchmail sont installs, ok on peut balancer la sauce ! :) on y va
   !

    1. Vous devez crer un fichier .procmailrc qui contiendra les infos
       de routage vers vos utilisateurs.
    2. Vous avez besoin galement de crer un fichier nosuchuserfile
       pour que l'expditeur sache que son message n'as pas t dlivr.
    3. Pour un boulot au top :) vous pouvez utiliser crontab pour
       vrifier le courrier. C'est le moyen le plus facile pour vrifier
       toutes les XX minutes si vous avez du courrier lorsque vous tes
       connect.

4.1 Cration du fichier .fetchmailrc

   Vous avez besoin de crer un fichier .fetchmailrc qui contiendra les
   informations de votre service (nom d'utilisateur, mot de passe, aussi
   bien que le mda (agent de distribution de courrier) pour attribuer les
   messages. Exemple:

     (*** < file > *** text ***) .fetchmailrc
       ______________________________________________________________

server my.mail.server.com
proto pop3
user myaccountthere
pass deepestsecrets
flush
mda /usr/bin/procmail
       ______________________________________________________________

   Ce fichier peut tre utilis pour grer votre courrier. Testez-le en
   utilisant fetchmail (fetchmail -vv) et voyez si votre courrier est
   bien transfr ... Il devrait y avoir quelques erreurs puisque le
   fichier de contrle procmail n'a pas encore t install. Vous pouvez
   attendre de crer le fichier .procmailrc avant d'effectuer le test
   mais je vous prviens SI il y a erreur :) a PEUT provenir de ce
   fichier :). Ce fichier doit tre accessible au propritaire du compte
   (dans mon exemple : mailservice) et doit tre lisible par
   l'utilisateur mais PAS lisible par le groupe/extrieur puisqu'il
   contient le mot de passe principal :) (vous devrez changer les droits
   du fichier .fetchmailrc en 600)

4.2 Cration du fichier .procmailrc

   Ce fichier de contrle distribuera le courrier vers son destinataire.
   Il y a deux manires de le faire comme nous l'avons vu prcdemment :
   par le destinataire (to: ) et par le corps du sujet (moins rglo). Ce
   fichier contiendra les diffrents destinataires des messages. Tous les
   commentaires prcds d'un # ne sont pas obligatoires - ils sont l
   uniquement pour vous permettre de suivre ma dmarche... Vous pouvez
   aussi changer les droits de ce fichier en 600 - le reste du monde et
   le groupe nont pas besoin de connatre ces adresses prives :)...
   L'utilisateur doit aussi en tre le propritaire (comme mailservice)
   :). Le fichier "nosuchuserfile" renvoie un e-mail  l'expditeur si le
   destinataire n'est pas trouv dans le fichier procmail (le courrier
   n'est pas distribu) - aussi l'expditeur sait que son adresse n'est
   pas valide.

  Pour la distribution par le destinataire (m(A)):

     (*** < file > *** text ***) .procmailrc
       ______________________________________________________________

# Cette ligne sert uniquement au dbogage ! Il peut-tre enlever dans un but
# de confidentialit puisque vous aurez accs  toute la messagerie transitant
# par votre domaine... Tous les messages seront copis dans le fichier
# "passtrough" avant d'tre distribus aux destinataires... ici vous pouvez
# voir ce qui ne va pas ...
:0 c
        passtrough

# l'e-mail avec l'entte "to: freaker@mydom.com" me sera directement dirig,
# les autres continuerons leur chemin...
:0
* ^To:.*freaker@mydom.com
! freaker

# l'e-mail pour root@mydom.com sera dirig vers le root... et vers
# l'administrateur du courrier !
:0
* ^To:.*root@mydom.com
! root

:0
* ^To:.*postmaster@mydom.com
! postmaster


# l'e-mail pour barbara@mydom.com sera distribu  barbara ET sera retransmis
# vers son adresse prive !

:0 c
* ^To:.*barbara@mydom.com
! barbara@her.private.one

:0
* ^To:.*barbara@mydom.com
! barbara

# Ce script renvoie un e-mail vers l'expditeur s'il n'a pas trouv le
# destinataire dans son fichier... il enverra le fichier "nosuchuser" dans le
# corps du message comme rponse... attention ! vous avez absolument besoin
# d'un tel fichier ! - le mien signale : " La personne que vous essayez de
# joindre n'est pas abonne  ce serveur, essayez  nouveau svp, il se pourrait
# qu'elle ne soit plus prsente".
:0
  |(/usr/bin/formail -r -k \
     -A"X-loop: mailservice@mydomain.dom "| \
       /usr/bin/gawk '{print }\
       /^/ && !HEADER \
         { system("/bin/cat nosuchuser"); \
         print"--" ;\
         HEADER=1 }' ) |\
         /usr/bin/sendmail -t


exit
       ______________________________________________________________

  Pour la distribution avec comme "sujet: touser" (m(B))

     (*** < file > *** text ***) .procmailrc
       ______________________________________________________________

# Cette ligne sert uniquement au deboggage ! Il peut-tre enlever dans un but
# de confidentialit puisque vous aurez accs  toute la messagerie transitant
# par votre domaine... Tous les messages seront copis dans le fichier
# "passtrough" avant d'tre distribus aux destinataires... ici vous pouvez
# voir ce qui ne va pas...
:0 c
        passtrough

# l'e-mail avec l'entte "to: freaker@mydom.com" me sera directement dirig,
# les autres continuerons leur chemin... si vous avez un compte ddi pour
# recevoir votre "mailservice" vous n'avez pas besoin de cette ligne :)
:0
* ^To:.*freaker@ibm.net
! freaker

#  l'e-mail avec l'entte root@mydom.com sera dirig vers le root !
:0
* ^Subject:.root
! root

# l'e-mail avec l'entte barbara@mydom.com sera distribu  barbara...
:0
* ^Subject:.barbara
! barbara

# l'e-mail avec l'entte peul sera transmis vers son adresse prive.
:0
* ^Subject:.paul
! paul@his.personal.emailaddress

# Tout e-mail avec l'entte john sera transmis  son compte et une copie vers
# son adresse e-mail prive...
:0 c
* ^Subject:.john
! john@his.personal.emailaddress

:0
* ^Subject:.john
! john

# Tous e-mail d'ibm, avec les infos de mise  jour, seront envoys  freaker,
# comme il est le seul  vouloir administrer le service d'e-mail et que ibm ne
# veut pas recevoir les retours de courrier non attribu !!
# si votre fournisseur vous expdie des "newsletters" etc... cette ligne est
# obligatoire.
:0
* ^From:.*newsletter@ibm.net
! freaker

# Tous les messages que le dmon veut rejeter, ou dans mon cas, les sauve dans
# un fichier... (utiliser  /dev/null pour les envoyer au fin fond des abysses).
:0
* ^FROM_DAEMON
throwaway

# Ce script renvoie un e-mail vers l'expditeur s'il n'a pas trouv de
# destinataire dans son fichier... il enverra le fichier "nosuchuser" dans le
# corps du message comme rponse... attention ! vous avez absolument besoin
# d'un tel fichier ! - le mien signale: "L'utilisateur n'est pas reconnu dans
# la ligne objet svp utilisez "Subject: nom de l'utilisateur" pour crire  la
# personne concerne, par exemple "Subject: freaker" enverra un e-mail 
# freaker". Ce fichier peut tre long, mais aussi court :)... l'adresse de
# votre domaine "mailservice@mydomain.com" vitera de confondre vos
# utilisateurs avec ceux de votre fournisseur d'accs - il a besoin de
# connatre votre adresse exacte!
# Sinon vous pouvez crer une boucle sans fin qui envoie un e-mail du style
# "Ne dpensez pas 500$ chez votre ..."
:0
  |(/usr/bin/formail -r -k \
     -A"X-loop: mailservice@mydomain.dom "| \
       /usr/bin/gawk '{print }\
       /^/ && !HEADER \
         { system("/bin/cat nosuchuser"); \
         print"--" ;\
         HEADER=1 }' ) |\
         /usr/bin/sendmail -t

exit
       ______________________________________________________________

4.3 Il n'y a pas d'abonn ... (fichier nosuchuser)

     (*** < file > *** text ***) nosuchuser
       ______________________________________________________________


La personne que vous dsirez contacter n'est pas abonne  cette adresse.

S'il vous plat, utilisez la ligne rserve au sujet pour y crire le nom de
votre correspondant - exemple: "subject: freaker" enverra un mail  freaker 
cette adresse"
       ______________________________________________________________

4.4 Fichier "crontab".

   Si vous ne savez pas comment crontab fonctionne :) il vaut mieux que
   vous lisiez le manuel :)... Vous avez besoin de crer un fichier pour
   contrle le courrier "checkmail" - celui-ci vrifiera si la connection
   est valide, de la mme manire que cron... - j'utilise le protocole
   ppp :) - aussi l'exemple suivant vrifiera la connection - ainsi que
   la messagerie toutes les 10 minutes en utilisant cron. Ca parat un
   peu louche - mais a ne l'est pas !

  Vrification du courrier

   Le fichier "checkformail" sera appel (il doit tre excutable pour
   cel) - et il vrifiera la connection. Si elle est valide alors il ira
   rcuprer le courrier. Crontab utilisera ce fichier quand vous
   utilisez l'entre cron suivante ...

     (*** < file > *** code ***) .checkformail
       ______________________________________________________________

#!/bin/sh
#

        cd /home/mailservice

        if [ -f /var/run/ppp0.pid ]; then
        /usr/local/bin/fetchmail -s > /dev/null 2>&1
fi
       ______________________________________________________________

  crontab

   Cette entre cron doit tre charge dans crontab, elle appellera le
   fichier .checkformail toutes les 10 minutes. Elle n'a aucune action
   sur le courrier ni sur la console - puisque le tout va directement
   dans le rpertoire /dev/null.

     (*** < file > *** text ***) cronentry
       ______________________________________________________________

0,10,20,30,40,50 * * * *  /home/mailservice/.checkformail 1> /dev/null 2>
/dev/null
       ______________________________________________________________

4.5 Chez votre fournisseur d'accs.

   Ce qui suit doit tre fait si vous utilisez la mthode A... chez
   l'administrateur, l'e-mail va directement du domaine vers
   l'utilisateur. C'est assez simple, et une fois que c'est install a
   roule d'enfer ! Ce n'est pas ncessaire ni chez vous ni chez votre
   administrateur systme si celui-ci utilise une autre mthode.

   Si vous utilisez une nouvelle version de sendmail, l'ancienne version
   ne fonctionnera sans doute pas, aussi rfrez vous au manuel
   d'utilisation pour que le routage d'e-mail ait lieu.

  (Ancienne version de sendmail) ajoutez les lignes suivantes au
  fichiersendmail.cf

   Ajoutez les lignes suivantes au fichier /etc/sendmail.cf, ainsi le
   fichier du domaine sera lu. SVP il est  noter que la rgle 98 est
   ajoute ci-dessous, ceci pour rcuprer les erreurs :) c'est l'enfer
   pour les enlever ! (et je sait de quoi je parle :) DuH).

     (*** < file > *** add ***) /etc/sendmail.cf
       ______________________________________________________________

# Base de donnes du domaine maintenu

Kmaildomains btree /etc/maildomains.db

# ajoutez ces lignes "dans" la rgle 98 ! (sous la rgle 98)

R$+ < @ $+  . >              $: $1 < @ $2 > .
R$+ < @ $+ > $*              $: $(maildomains $1@$2 $: $1 < @ $2 > $3 $)
R$+ < @ $+ > $*              $: $(maildomains $2 $: $1 < # $2 > $3 $)
R$+ < @ $* > .               $: $1 < @ $2 . >
       ______________________________________________________________

  (Nouvelle version de sendmail) Ajoutez ces lignes au fichier sendmail.cf

   Avec la nouvelle version de sendmail (test avec la version 8.8.7 et
   8.8.8), ignorez la mthode A, et ajoutez les lignes suivantes :

     (*** < file > *** add ***) /etc/sendmail.cf
       ______________________________________________________________

# Base de donnes du domaine maintenu

Fw/etc/sendmail.cw
Kvirtuser btree /etc/maildomains.db

*OR*

Fw/yourhomedir/sendmail.cw
Kvirtuser btree /yourhomedir/maildomains.db
       ______________________________________________________________

  (Nouvelle version de sendmail) Editez le fichier /etc/sendmail.cw

   Editez le fichier /etc/sendmail.cw (ou /votrerpertoire/sendmail.cw si
   vous n'utilisez pas le mme emplacement). Un point positif 
   l'utilisation de votre rpertoire: vous n'avez pas besoin d'tre
   loguer root pour activer votre domaine. Bien que vous pouvez avoir des
   risques de scurit si vous n'tes pas rigoureux !

   Ce fichier peut dj exister, ou a besoin d'tre cr. S'il existe
   dj soyez sr de ne pas craser les anciennes donnes - ou je vous
   rappelerai ma dclaration :)

   En premier lieu crez un fichier /etc/sendmail.cw, qui sera utilis
   entre le domaine et l'utilisateur... (comme je vous l'ai dj dit, le
   nom "mailservice" est  votre convenance - a peut mme tre votre
   login (le mien est freaker)). Exemple :

     (*** < file > *** text ***) /etc/sendmail.cw
       ______________________________________________________________

mydomain.dom            mailservice
       ______________________________________________________________

  Crez un fichier /etc/maildomains file

   En premier lieu crez un fichier /etc/maildomains, qui sera utilis
   entre le domaine et l'utilisateur... (comme je vous l'ai dj dit, le
   nom "mailservice" est  votre convenance - a peut mme tre votre
   login (le mien est freaker)). (Vous pouvez avoir ce fichier dans votre
   rpertoire, changez le chemin :). Exemple :

   Avec l'ancienne version de sendmail:

     (*** < file > *** text ***) /etc/maildomains
       ______________________________________________________________

mydomain.dom            mailservice
       ______________________________________________________________

   Avec la nouvelle version de sendmail:

     (*** < file > *** text ***) /etc/maildomains
       ______________________________________________________________

@mydomain.dom           mailservice
       ______________________________________________________________

  Au travail !

   Avec l'ancienne et la nouvelle version de sendmail vous avez besoin de
   crer les fichiers btree (base de donnes), suivez le guide :

cd /etc    (or /yourhomedir)
makemap btree maildomains < maildomains

   aprs cel, tuez le dmon sendmail et redmarrez le. Maintenant a
   devrait marcher ! Bonne chance :)

5. Automatisation

   OK, tout ce que nous avons vu fonctionne... (sinon ne pensez mme pas
    l'automatisation, il faut d'abord que tout soit ok) maintenant il
   nous faut un script pour que l'administrateur ou le root ne se prenne
   pas la tte pour ajouter un utilisateur  votre fichier procmail...
   L'exemple suivant s'adresse  des utilisateurs plus expriments -
   parce que certaines choses ont besoin d'tre changes. J'ai dcid
   d'utiliser la M(B) parce qu'elle est plus utilise que la M(A) (moins
   chre). Mon exemple peut trs bien tre adapt  la M(A).

5.1 La structure.

   Puisque le fichier de post-routine termine le programme (tout ce qui
   va suivre ne fonctionnera pas sans lui) nous avons besoin d'un fichier
   de pre-routine.

  Le fichier de pre-routine ".procmailrc-header"

   Ce fichier servira  la fois au fichier de pre-routine et au fichier
   principal puisqu'ici seront rajouts ou supprims les diffrents
   utilisateurs. C'est un fichier trs important, une copie de sauvegarde
   sera la meilleure chose  faire avant l'ajout d'un utilisateur, il
   PEUT y avoir des problmes ... une machine n'est pas infaillible.

     (*** < file > *** text ***) .procmailrc-header
       ______________________________________________________________

:0 c
        passtrough

:0
* ^To:.*freaker@ibm.net
! freaker

:0
* ^Subject:.root
! root

:0
* ^Subject:.barbara
! barbara

:0
* ^Subject:.paul
! paul@his.personal.emailaddress

:0 c
* ^Subject:.john
! john@his.personal.emailaddress

:0
* ^Subject:.john
! john

:0
* ^From:.*newsletter@ibm.net
! freaker

:0
* ^FROM_DAEMON
throwaway
       ______________________________________________________________

  Le fichier de post-routine ".procmailrc-footer"

   Comme mentionn ci-dessus, ce fichier doit tre la post-routine
   puisqu'il ne sera pas utilis pour dlivrer les donnes - ce fichier
   contient le code de "rejet" pour retourner le message  l'expditeur
   s'il ne trouve pas de correspondant ! C'est vraiment la fin de la
   boucle !

     (*** < file > *** text ***) .procmailrc-footer
       ______________________________________________________________


:0
  |(/usr/bin/formail -r -k \
     -A"X-loop: mailservice@mydomain.dom "| \
       /usr/bin/gawk '{print }\
       /^/ && !HEADER \
         { system("/bin/cat nosuchuser"); \
         print"--" ;\
         HEADER=1 }' ) |\
         /usr/bin/sendmail -t


exit
       ______________________________________________________________

5.2 Script d'ajout de bote  lettre

   Ce script ajoutera un utilisateur au fichier de pre-routine, et mettra
    jour le ".procmailrc" d'aprs le ".procmailrc-header" pour clturer
   le tout. Les commentaires (prcds de #) ne sont l que pour vous
   aider :) vous pouvez les supprimer.

     (*** < file > *** code ***) addmail (* chmod 500 *)
       ______________________________________________________________

#/bin/sh
#
# Copyright (c)1997 par Gunther Voet. rev 1.0.1
# SVP merci de laisser ce copyright si vous fournissez une machine avec ce
# programme prinstall ...


echo ""
echo "Addmail v1.0.1 by Gunther Voet, Freaker / TuC'97-98 (21/04/97)"
echo ""

if [ $1 ]; then

        if [ $2 ]; then

# Faites une sauvegarde!

        cp /home/mailserv/.procmailrc-header /home/mailserv/.procmailrc-backup

# Ajoutez l'information (>>) au fichier .procmailrc-header

        echo ":0" >> /home/mailserv/.procmailrc-header
        echo "* ^Subject:.$1" >> /home/mailserv/.procmailrc-header
        echo "! $2" >> /home/mailserv/.procmailrc-header
        echo "" >> /home/mailserv/.procmailrc-header

# Mettez  jour le fichier .procmailrc  partir des fichiers .procmailrc-header
#  et .procmailrc-footer


        cat /home/mailserv/.procmailrc-header > /home/mailserv/.procmailrc
        cat /home/mailserv/.procmailrc-footer >> /home/mailserv/.procmailrc

# Soyez sr que le fichier .procmailrc n'appartient qu' l'administrateur
# "mailserv" et que ce dernier a l'exclusivit de l'criture/lecture...

        chown mailserv /home/mailserv/.procmailrc
        chgrp users /home/mailserv/.procmailrc
        chmod 600 /home/mailserv/.procmailrc
else
        echo "No DESTINATION mail address has been given ..."
fi

else
        echo "usage:"
        echo ""
        echo "syntax:  addmail from_user to_user(domain)"
        echo ""
        echo "example: addmail freaker freaker@myemail.dom"
        echo ""
fi
       ______________________________________________________________

   Ok, ce script va donc ajouter les informations de l'utilisateur ainsi
   que son adresse dans le fichier .procmailrc-header, et mettra  jour
   le fichier .procmailrc  partir des deux autres fichiers (header et
   footer). Si vous voulez supprimer un utilisateur, vous n'avez juste
   qu' diter le fichier ".procmailrc-header" pour le modifier, ainsi la
   prochaine fois que vous ajouterez quelqu'un, l'utilisateur prcdent
   sera supprim du fichier .procmailrc. Pour effectuer une suppresion
   immdiate, il vous faut le supprimer  la fois dans le fichier
   .procmailrc et .procmailrc-header.

   Je vous crois assez comptent pour modifier le script pour que l'ajout
   d'un utilisateur  votre compte se fasse automatiquement et ce pour
   les deux mthodes.

6. A l'aide ! (Sic)

   Bon, vous avez besoin d'un peu d'aide, non :) je pourrais tre
   sarcastique et seulement vous dire: "vous feriez mieux de tout
   rinstaller, parce que vu d'ici c'est un peu le bordel"... ou je peux
   vous aider ... - j'ai dcris ici quelques problmes courants. Si vous
   avez des problmes qui ne sont pas rpertoris ici, faites m'en part
   par e-mail et je rajouterais tout a  ce HowTo avec en sus votre nom
   et adresse e-mail - AVANT de m'crire svp, vrifiez que vous n'oubliez
   rien et si vous voulez que je vous aide expdiez moi le plus d'info
   possible incluant le script et la description de ce que vous voulez.
   Je n'ai PAS besoin des binaires, je ne veux pas le faire tourner.

6.1 Le script d'automatisation ne fonctionne pas:

     * est-il executable ?
     * est-ce que votre emplacement par dfaut est /bin/sh ?

6.2 Qu'est-ce que vous entendez par serveur de mail anonyme ?

     * Vous pouvez crer un compte comme "anon0001@votredomaine.dom" et
       le faire suivre vers une autre adresse e-mail... personne n'ayant
       accs au fichier .procmailrc, VOUS SEUL connaissez l'identit de
       vos utilisateurs !

6.3 Mon chat est mort

     * La prochaine fois n'imprimez pas ce HowTo avec du papier de 200gr,
       parceque pour 10 pages ce sera 2kg pour le chat - c'est JUSTE TROP
       LOURD !

6.4 Mon chien est mort

     * Hmmm... je ne peux rien faire pour vous, pourquoi vous me posez
       cette question ? ... Enterrez le...

6.5 Linux?

     * Un UNIX libre de droit - compatible Posix - cr par Linus
       Torvalds ... Pourquoi tes-vous en train de lire cel si vous ne
       connaissez mme pas Linux ?

6.6 Pouvez vous m'aider  trouver un compte ?

     * Non! C'est un HowTo pour une utilisation personnelle, je me
       contrefous de votre fournisseur d'accs ainsi que de votre adresse
       e-mail.

6.7 Pourquoi avoir enlev " peut-tre que plus tard je rajouterais quelques
commentaires ..." ?

     * Lisez le point 5.5 avec attention :) et verrez pourquoi... c'est
       parce que j'avais besoin de le rajouter sur demande gnrale :)

6.8 Comment puis-je obtenir un "domaine" ?

     * Demandez  votre fournisseur d'accs, il vous y aidera. Ca peut
       prendre des jours voire des semaines pour le demander  Internic -
       votre fournisseur d'accs peut aider.

6.9 Pourquoi tes-vous un enc... en utilisant cette mthode ?

     * Parce que je ne veux pas dpenser de l'argent et parce que j'aime
       bien tre un enc... en l'utilisant - JE l'utilise - pourquoi a
       vous ennuie ?

6.10 Le fichier "nosuchuserfile" ?

     * Vous pouvez y mettre ce que vous voulez - pourvu que l'expditeur
       sache pourquoi son message a t refus.

6.11 Est-ce que mes utilisateurs peuvent crire et envoyer du courrier ?

     * Ce n'est pas le but de ce systme, lisez le manuel du sendmail...
       je vous explique ici comment RECEVOIR du courrier et avoir
       toujours une adresse valide.

6.12 Est-ce que chaque utilisateur a besoin d'un compte shell sur mon serveur ?

     * Nan... Mais ! Ce sera difficile pour les utilisateurs qui n'ont
       pas accs  internet :) vous pourriez avoir un rseau camoufl (et
       utiliser un ordinateur qui y soit connect) pour que les
       utilisateurs puissent lire leur courrier de cette faon, ou bien
       vous pourriez crer un lien entre un BBS et le courrier
       lectronique, vous pourriez mme le transmettre vers une
       passerelle Fidonet :) Autant de circonstances qui permettraient
       d'viter de donner un compte shell.

6.13 sans objet

     * A priori un jeu de mot entre Skeletion et Skeleton

6.14 l'ajout de courrier ?

     * Pas de question - pour l'automatisation - vous feriez mieux d'tre
       sr de ce que vous voulez, parce que a pourrait tre votre cheval
       de troie ;)) Ce que je veux vous dire, c'est que vous devez savoir
       comment faire un script avant de poser des questions. C'est assez
       facile  interprter et en plus j'y ai ajout des commentaires. Si
       vous avez l'intention de distribuer ce script, svp pensez  mon
       copyright ! merci ;)

6.15 Pourquoi tes-vous si cruel ?

     * Je ne suis pas cruel :) je suis gentil :) je suis le plus gentil
       garon de la Terre, de l'univers ! MAINTENANT DEHORS ! ( je veux
       juste m'en tenir  mon HowTo et pas TROP driver de mon point de
       dpart - aussi :) that's all folks ! ).

6.16 Avez vous eu des plaintes  propos de langage excessif ?

     * Pas encore, mais, il se pourrait que je filtre toute chose
       contenant "excessif" et "langage" :) je ne sais pas :))

6.17 Pourquoi ce HowTo est-il si diffrent des autres ?

     * Parce que le fait de lire beaucoup de HowTo peut devenir
       barbant... j'ai voulu y ajouter autre chose...

6.18 Localement mon domaine fonctionne, mais semble rien recevoir de
l'extrieur.

     * Vrifiez votre fichier "sendmail.cw, le nom de domaine a BESOIN de
       s'y trouver !

6.19 Mon chien est mort

     * Les rgles ne fonctionnent pas, je ne peux recevoir d'e-mail, ou
       sendmail plante, rfrez vous  la section  new sendmail  et ne
       ftes pas attention aux explications de l'ancienne version. La
       nouvelle version de sendmail sera plus facile  utiliser avec les
       domaines virtuels.

7. The End

   Il faut une fin  tout... si vous trouvez des bugs non repertoris (ou
   des particularits), alors laissez de ct vos critiques... envoyez
   moi vos commentaires et suggestions :) Si vous tes encore en colre
   aprs avoir lu cel, svp allez voir  http://tuc.ml.org/hehehe.

   Mes remerciements :

   Hannes van de Vel: pour m'avoir support (hum) Tetsu Isaji: pour la
   version japonaise ainsi que pour m'avoir signal quelques erreurs :)
   Greg Hankins: pour m'avoir fait remarquer les erreurs de la version
   sgml. Linus torvalds: bien sr, sans qui ce HowTo n'existerait pas !
