Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > ebac5394abc62d2e0b61505bfba9712a > files > 154

howto-text-fr-2006-5mdv2010.0.noarch.rpm


   Méthode 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 Quéau ThierryLeQueau@wanadoo.fr

   v1.3.2, 7 Février 1998
     _________________________________________________________________

   _Utilisez votre système 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 même
   que vos utilisateurs recoivent leur courrier dans leur boîte à lettre
   Linux; au lieu de payer un service de diffusion multi-utilisateur à
   votre fournisseur d'accès, vous pouvez utiliser ce système pour
   redistribuer aux différents comptes utilisateur le courrier en
   utilisant une seule adresse e-mail. Vous pouvez y avoir accès 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. Préface.

   Dans ce chapitre je veux juste me mettre à l'abri de tous dommages et
   de retour de flamme - même 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 concernée plus loin ...

   Nota : tous les noms et types de fichier sont repertoriés ainsi :

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

   Il s'agit donc d'un fichier .procmailrc contenant du texte. La
   variable texte peut aussi être codée. Cela pour définir 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 résident dans
   le répertoire de l'utilisateur comme /home/mailer).

1.1 D'un point de vue légal.

   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 résulter 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 expérience, mais je peux encore
   faire des erreurs dans les informations ou les exemples. Chaque marque
   commerciale est la propriété de son détenteur 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 déclaration). 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 autorisée sous toute forme que ce soit est
   explicitement autorisée et même chaudement encouragée 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 régits 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 créer un système basé sur ce HowTo, pensez à
   mon copyright :) heh... - je ne suis pas méchant :)). Bien sûr en tant
   qu'addon - PAS pour le programme de mail lui-même - bien que ce soit
   agréable d'y être inclus :))Je peux toujours avoir une adresse
   supplémentaire pour être encore plus critiqué :)) (je plaisante).

1.3 Réactions.

   J'espère que ce HowTo vous sera utile ainsi qu'à tous ceux qui le
   voudront. Si vous avez des suggestions, commentaires ou corrections (
   exceptés les injures :) ) - svp expédiez les moi à freaker@tuc.ml.org
   et j'en ferai la mise à jour pour la prochaîne version. Si vous
   publiez ce document dans un but commercial, une copie supplémentaire
   sera appréciée - vous pouvez me l'envoyer à mon adresse postale. Pour
   les critiques - vous pouvez me les expédier, mais elle finirons dans
   le répertoire /dev/null ... aussi - ce n'est pas la peine encombrer la
   bande passante avec ! En plus je peux empêcher 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 dernière version de ce document peut être téléchargée à 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        - Première version, test interne, nous l'avons essayé avant de
                 vous le donner :) ..  depuis il devient opérationnel 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 système YAY !
               - La version japonaise arrivera bientôt, je vous signalerais
                  son emplacement dès que je le connaîtrai ...
                  (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'accès (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 dès 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 système de lodus.net pour la maintenance de ce
       projet.

2. Preliminaires.

   Bon, comment fonctionne ce système? 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 réponse.

2.1 Préface & Description

   Ce HowTo est dédié à 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 accès direct 24/24 ou un compte pour chaque utilisateur.... Ou vous
   avez un réseau interne - avec un serveur camouflé et vous voulez que
   tous les utilisateurs aient une adresse e-mail, vous pouvez utiliser
   cette méthode pour le faire. Personnellement je l'utilise pour fournir
   aux utilisateurs et membres de mon groupe de démo 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
   accès e-mail permanent - et différentes adresses IP. Tous ont une
   adresse e-mail, même s'ils n'ont pas accès à internet. Le seul à avoir
   un accès internet peut recevoir leur courrier à leur adresse
   personnelle - via le système décrit ci-dessous. Vos utilisateurs
   peuvent expédier leur courrier comme ils ont l'habitude de le faire,
   et votre système gèrera les différentes 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'entête suivant la méthode
   choisie.

2.2 L'intérêt d'une telle chose ...

     * Permettre de contacter tous les membres d'une organisation par
       adresse e-mail si nécessaire.
     * 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 dépenser de l'argent pour ça (eh eh) - et
       qui veut quand même fournir une adresse e-mail à chacun de ses
       membres.
     * Un réseau 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'accès, pour les +200 comptes e-mail que vous pouvez créer sur
       votre serveur.
     * J'utilise la méthode 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 à connaître.

     * 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 réseau 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 méthode à besoin d'un administrateur pour gérer 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
       même).
     * Une bonne bande passante et un espace virtuel conséquent chez
       votre fournisseur d'accès est indispensable quand vous avez
       plusieurs utilisateurs ... et soyez sûr d'y avoir assez de place
       quand vous expédiez les fichiers.
     * Tout le courrier sera transféré en une seule fois - aussi - le
       dernier message que vous recevrez sur votre serveur sera aussi le
       dernier que vous aurez expédier. "Premier entré - premier sorti".
     * Dans la première méthode (to : ) il n'y a pas de problème avec les
       noms des différents utilisateurs - mais dans la seconde méthode -
       vous ne pouvez pas donner de sujet puisqu'il sera utilisé pour la
       délivrance à son destinataire. Beaucoup d'utilisateurs oublient
       d'utiliser le sujet du message... - ou ils ont besoin de le savoir
       clairement.
     * Si vous vérifiez 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 régulier.
     * Vous POUVEZ l'utiliser également lorsque vous avez un accès
       permanent :) et lui faire vérifier 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 différentes...

    1. methode 'A' - que nous appellerons "(m(A))". Le système de
       courrier vérifie le destinataire du message d'après le "to:".
       C'est la meilleure méthode puisque c'est l'adresse e-mail réelle .
       Vous avez besoin d'un autre compte sur un serveur ET avez
       besoin'une entrée DNS (MX) (votre propre domaine en l'occurrence).
       Si l'administrateur système veux bien vous aider, alors il n'y
       aura aucun problème ! Il redirigera TOUS les messages envoyés au
       nom de votre domaine sur votre compte ! Cela lui prendra du temps
       pour le faire :) aussi soyez sympa avec lui :)) Merci à mon
       administrateur système (Fred) j'ai obtenu un nom de domaine et le
       service utilisateur pour mon groupe de démo. Il se peut qu'une
       entrée DNS vous coûte 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 transfère 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 entrée DNS ou vous n'avez pas
       besoin d'être gentil avec votre administrateur système pour qu'il
       vous arrange votre adresse e-mail :). J'ai utilisé cette méthode
       la première fois pendant près d'un an... je sais que c'est un peu
       truander, mais je ne vous ai pas dit que vous deviez utiliser
       cette méthode, aussi ne me tirez pas dessus - alors que je suis
       juste en train de vous fournir des solutions pour vos problèmes de
       messagerie :) - vous pouvez utiliser la méthode A qui est elle
       réglo !

3. Vos besoins.

   Bon, vous avez besoin (bien sûr) d'une bécane 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 téléphonique -
   ou n'importe quel moyen de vous connecter à votre fournisseur d'accès.
   Vous avez besoin aussi de quelque software comme Fetchmail, Procmail,
   un compte supplémentaire, et votre compte e-mail ou d'une entrée DNS
   avec un compte e-mail.

3.1 Une machine sous Linux

   Ca peut-être n'importe quelle bécane... même un 8086... - mais il est
   préférable - puisqu'il y aura quelques chargements à effectuer - de
   posséder au moins un 386 :) plus votre babasse ira vite, plus votre
   logiciel sera rapide (pas vrai ?) :).

3.2 Un compte supplémentaire sur votre machine sous Linux.

   Vous avez besoin de créer un compte supplémentaire sur votre système.
   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 différents
   destinataires de votre système, ou les envoyer vers l'extérieur :)).
   Créez-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 sûr !

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 préférez 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 sûr 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 gère merveilleusement et est bien
   mieux que l'agent par défaut puisqu'il délivre les messages
   utilisateur par utilisateur ! Pour l'installation je vous donne les
   mêmes 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
   différents 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 méthode B (adresse dans le corps
   du sujet) vous n'avez besoin de rien d'autre - par contre la méthode 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 contactés et qui
   pourraient interférer avec vos utilisateurs. Et vos entêtes de
   messages doivent être filtrées sur ce domaine. Ce qui vous donne un
   domaine autonome pointant sur SON domaine. Par contre ça vous coûtera
   un peu plus cher, ou vous pouvez demander à votre administrateur
   système 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 sytème a besoin de faire suivre tous les
   messages destinés à votre domaine sur votre compte... c'est une tâche
   relativement aisée pour lui s'il sait le faire :) ..sinon il devra
   lire le manuel du sendmail :) ( ou qmail ). Vous récupérez votre
   courrier sur votre compte et voilà ! Tous les messages seront
   redistribués sur votre propre domaine.

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

   Vous avez créé votre compte supplémentaire, récupéré votre adresse
   e-mail et/ou l'entrée DNS pour rerouter sur votre compte... Procmail
   et Fetchmail sont installés, ok on peut balancer la sauce ! :) on y va
   !

    1. Vous devez créer un fichier .procmailrc qui contiendra les infos
       de routage vers vos utilisateurs.
    2. Vous avez besoin également de créer un fichier «nosuchuserfile»
       pour que l'expéditeur sache que son message n'as pas été délivré.
    3. Pour un boulot au top :) vous pouvez utiliser crontab pour
       vérifier le courrier. C'est le moyen le plus facile pour vérifier
       toutes les XX minutes si vous avez du courrier lorsque vous êtes
       connecté.

4.1 Création du fichier .fetchmailrc

   Vous avez besoin de créer 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 gérer votre courrier. Testez-le en
   utilisant fetchmail (fetchmail -vv) et voyez si votre courrier est
   bien transféré ... Il devrait y avoir quelques erreurs puisque le
   fichier de contrôle procmail n'a pas encore été installé. Vous pouvez
   attendre de créer le fichier .procmailrc avant d'effectuer le test
   mais je vous préviens SI il y a erreur :) ça PEUT provenir de ce
   fichier :). Ce fichier doit être accessible au propriétaire du compte
   (dans mon exemple : mailservice) et doit être lisible par
   l'utilisateur mais PAS lisible par le groupe/extérieur puisqu'il
   contient le mot de passe principal :) (vous devrez changer les droits
   du fichier .fetchmailrc en 600)

4.2 Création du fichier .procmailrc

   Ce fichier de contrôle distribuera le courrier vers son destinataire.
   Il y a deux manières de le faire comme nous l'avons vu précédemment :
   par le destinataire (to: ) et par le corps du sujet (moins réglo). Ce
   fichier contiendra les différents destinataires des messages. Tous les
   commentaires précédés d'un # ne sont pas obligatoires - ils sont là
   uniquement pour vous permettre de suivre ma démarche... Vous pouvez
   aussi changer les droits de ce fichier en 600 - le reste du monde et
   le groupe nont pas besoin de connaître ces adresses privées :)...
   L'utilisateur doit aussi en être le propriétaire (comme mailservice)
   :). Le fichier "nosuchuserfile" renvoie un e-mail à l'expéditeur si le
   destinataire n'est pas trouvé dans le fichier procmail (le courrier
   n'est pas distribué) - aussi l'expéditeur sait que son adresse n'est
   pas valide.

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

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

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

# l'e-mail avec l'entête "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 privée !

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

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

# Ce script renvoie un e-mail vers l'expéditeur s'il n'a pas trouvé le
# destinataire dans son fichier... il enverra le fichier "nosuchuser" dans le
# corps du message comme réponse... attention ! vous avez absolument besoin
# d'un tel fichier ! - le mien signale : " La personne que vous essayez de
# joindre n'est pas abonnée à ce serveur, essayez à nouveau svp, il se pourrait
# qu'elle ne soit plus présente".
: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 accès à toute la messagerie transitant
# par votre domaine... Tous les messages seront copiés dans le fichier
# "passtrough" avant d'être distribués aux destinataires... ici vous pouvez
# voir ce qui ne va pas...
:0 c
        passtrough

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

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

# l'e-mail avec l'entête barbara@mydom.com sera distribué à barbara...
:0
* ^Subject:.barbara
! barbara

# l'e-mail avec l'entête peul sera transmis vers son adresse privée.
:0
* ^Subject:.paul
! paul@his.personal.emailaddress

# Tout e-mail avec l'entête john sera transmis à son compte et une copie vers
# son adresse e-mail privée...
:0 c
* ^Subject:.john
! john@his.personal.emailaddress

:0
* ^Subject:.john
! john

# Tous e-mail d'ibm, avec les infos de mise à jour, seront envoyés à 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 expédie des "newsletters" etc... cette ligne est
# obligatoire.
:0
* ^From:.*newsletter@ibm.net
! freaker

# Tous les messages que le démon 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'expéditeur s'il n'a pas trouvé de
# destinataire dans son fichier... il enverra le fichier "nosuchuser" dans le
# corps du message comme réponse... 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 concernée, 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'accès - il a besoin de
# connaître votre adresse exacte!
# Sinon vous pouvez créer une boucle sans fin qui envoie un e-mail du style
# "Ne dépensez 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 désirez contacter n'est pas abonnée à cette adresse.

S'il vous plaît, utilisez la ligne réservée 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 créer un fichier pour
   contrôle le courrier "checkmail" - celui-ci vérifiera si la connection
   est valide, de la même manière que cron... - j'utilise le protocole
   ppp :) - aussi l'exemple suivant vérifiera la connection - ainsi que
   la messagerie toutes les 10 minutes en utilisant cron. Ca paraît un
   peu louche - mais ça ne l'est pas !

  Vérification du courrier

   Le fichier "checkformail" sera appelé (il doit être exécutable pour
   celà) - et il vérifiera la connection. Si elle est valide alors il ira
   récupérer le courrier. Crontab utilisera ce fichier quand vous
   utilisez l'entrée 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 entrée cron doit être chargée 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 répertoire /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'accès.

   Ce qui suit doit être fait si vous utilisez la méthode 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 nécessaire ni chez vous ni chez votre
   administrateur système si celui-ci utilise une autre méthode.

   Si vous utilisez une nouvelle version de sendmail, l'ancienne version
   ne fonctionnera sans doute pas, aussi référez 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 règle 98 est
   ajoutée ci-dessous, ceci pour récupérer les erreurs :) c'est l'enfer
   pour les enlever ! (et je sait de quoi je parle :) DuH).

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

# Base de données du domaine maintenu

Kmaildomains btree /etc/maildomains.db

# ajoutez ces lignes "dans" la règle 98 ! (sous la règle 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 méthode A, et ajoutez les lignes suivantes :

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

# Base de données 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 /votrerépertoire/sendmail.cw si
   vous n'utilisez pas le même emplacement). Un point positif à
   l'utilisation de votre répertoire: vous n'avez pas besoin d'être
   loguer root pour activer votre domaine. Bien que vous pouvez avoir des
   risques de sécurité si vous n'êtes pas rigoureux !

   Ce fichier peut déjà exister, ou a besoin d'être créé. S'il existe
   déjà soyez sûr de ne pas écraser les anciennes données - ou je vous
   rappelerai ma déclaration :)

   En premier lieu créez un fichier /etc/sendmail.cw, qui sera utilisé
   entre le domaine et l'utilisateur... (comme je vous l'ai déjà dit, le
   nom "mailservice" est à votre convenance - ça peut même être votre
   login (le mien est freaker)). Exemple :

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

mydomain.dom            mailservice
       ______________________________________________________________

  Créez un fichier /etc/maildomains file

   En premier lieu créez un fichier /etc/maildomains, qui sera utilisé
   entre le domaine et l'utilisateur... (comme je vous l'ai déjà dit, le
   nom "mailservice" est à votre convenance - ça peut même être votre
   login (le mien est freaker)). (Vous pouvez avoir ce fichier dans votre
   répertoire, 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
   créer les fichiers btree (base de données), suivez le guide :

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

   après celà, tuez le démon sendmail et redémarrez le. Maintenant ça
   devrait marcher ! Bonne chance :)

5. Automatisation

   OK, tout ce que nous avons vu fonctionne... (sinon ne pensez même 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 tête pour ajouter un utilisateur à votre fichier procmail...
   L'exemple suivant s'adresse à des utilisateurs plus expérimentés -
   parce que certaines choses ont besoin d'être changées. J'ai décidé
   d'utiliser la M(B) parce qu'elle est plus utilisée que la M(A) (moins
   chère). Mon exemple peut très 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 rajoutés ou supprimés les différents
   utilisateurs. C'est un fichier très important, une copie de sauvegarde
   sera la meilleure chose à faire avant l'ajout d'un utilisateur, il
   PEUT y avoir des problèmes ... 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 délivrer les données - ce fichier
   contient le code de "rejet" pour retourner le message à l'expéditeur
   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 boîte à lettre

   Ce script ajoutera un utilisateur au fichier de pre-routine, et mettra
   à jour le ".procmailrc" d'après le ".procmailrc-header" pour clôturer
   le tout. Les commentaires (précédés 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 préinstallé ...


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 sûr 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 précédent
   sera supprimé du fichier .procmailrc. Pour effectuer une suppresion
   immédiate, il vous faut le supprimer à la fois dans le fichier
   .procmailrc et .procmailrc-header.

   Je vous crois assez compétent pour modifier le script pour que l'ajout
   d'un utilisateur à votre compte se fasse automatiquement et ce pour
   les deux méthodes.

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
   réinstaller, parce que vu d'ici c'est un peu le bordel"... ou je peux
   vous aider ... - j'ai décris ici quelques problèmes courants. Si vous
   avez des problèmes qui ne sont pas répertoriés 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, vérifiez que vous n'oubliez
   rien et si vous voulez que je vous aide expédiez 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 défaut est /bin/sh ?

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

     * Vous pouvez créer un compte comme "anon0001@votredomaine.dom" et
       le faire suivre vers une autre adresse e-mail... personne n'ayant
       accès 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 même 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'accès 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 générale :)

6.8 Comment puis-je obtenir un "domaine" ?

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

6.9 Pourquoi êtes-vous un enc... en utilisant cette méthode ?

     * Parce que je ne veux pas dépenser 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'expéditeur
       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 système, 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 accès à internet :) vous pourriez avoir un réseau camouflé (et
       utiliser un ordinateur qui y soit connecté) pour que les
       utilisateurs puissent lire leur courrier de cette façon, ou bien
       vous pourriez créer un lien entre un BBS et le courrier
       électronique, vous pourriez même 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
       sûr 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 à interprêter 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
       garçon de la Terre, de l'univers ! MAINTENANT DEHORS ! ( je veux
       juste m'en tenir à mon HowTo et pas TROP dériver de mon point de
       départ - 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 différent 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'extérieur.

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

6.19 Mon chien est mort

     * Les règles ne fonctionnent pas, je ne peux recevoir d'e-mail, ou
       sendmail plante, référez 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 repertoriés (ou
   des particularités), alors laissez de côté vos critiques... envoyez
   moi vos commentaires et suggestions :) Si vous êtes encore en colère
   après 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 sûr, sans qui ce HowTo n'existerait pas !