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).
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 ...
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).
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.
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-
(essayez aussi � : http://tuc.ml.org)
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)
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 :).
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.
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.
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.
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 ?) :).
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 !
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 :).
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.
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 !
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 !
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.
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 !
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)
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.
(*** < 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
(*** < 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
(*** < 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"
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 !
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
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
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.
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 . >
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
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
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
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 :)
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).
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.
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
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
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.
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.
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 !