Automail pour fli4l

ArticleCategory: [Choose a category, translators: do not translate this, see list below for available categories]

UNIXBasics

AuthorImage:[Here we need a little image from you]

Stefan Blechschmidt

TranslationInfo:[Author + translation history. mailto: or http://homepage]

Original in de Stefan Blechschmidt

de to en J�rgen Pohl

en to fr Iznogood

AboutTheAuthor:[A small biography about the author]

Electricien confirm�, je me suis retrouv�, en 1990, devant une station de travail � faire le d�veloppement d'une station de contr�le et de commutation. J'ai, bien �videment �t� infect� par un � virus � inconnu mais c'�tait parfait.

Abstract:[Here you write a little summary]

Qui utilise ce routeur sur disquette de http://www.fli4l.de/ ? La plus part de ces utilisateurs connaissent le probl�me du routeur utilis� en mode dial-on-demand dans un r�seau avec un serveur de courriels interne. Lorsque le routeur �tablit la connexion, le serveur de courriels doit le savoir pour recevoir et envoyer du courriel.
Cet article d�crit une des possibilit�s pour r�soudre le probl�me.

ArticleIllustration:[One image that will end up at the top of the article]

Automail pour fli4l

ArticleBody:[The main part of the article]

Petite description de l'environnement

Notre dessin montre le concept d'un r�seau que nous allons prendre pour exemple dans cet article. WS1 � WS3 repr�sentent les stations de travail connect�es au WWW par le biais du routeur. Le service-host est responsable pour le courriel interne et externe. L'envoi du courriel est trait� par un MTA. La r�ception se fait avec fetchmail et le traitement ult�rieur par procmail. Les bo�tes au lettres de l'h�te de service sont fournies par les stations de travail via POP3 ou IMAP

Le probl�me

Si l'une des stations de travail �tablit une connexion sur le WWW, l'h�te de service ne le sait pas. Il serait possible de l'en informer avec l'aide d'une t�che cron pour envoyer et recevoir des courriels � des heures pr�d�termin�es. La mani�re plus �l�gante serait d'informer l'h�te de service que la connexion a �t� �tablie, lui permettant de traiter le courriel.

Comme le routeur est lanc� depuis une disquette, il n'y a pas de script complexe ou de programme pour contr�ler le serveur de courriels depuis le routeur.

L'id�e

Lorsque l'h�te de service est inform� sur l'ouverture d'une connexion, il devrait �tre possible de lancer une requ�te pour d�marrer le processus de r�ception et d'envoi de courriels.

La solution

Avec fli4l a �t� adjoint le programme wget, dont la taille est d'environ 100 ko. Il devrait rentrer tr�s facilement sur la disquette. Avec wget, nous pouvons �tablir une connexion avec le service h�te en m�me temps que la connexion. Cela sera possible par inetd, qui ouvrira un port sur l'h�te de service, attendant une connexion du routeur. Avec la connexion, un script d�marrera des processus suppl�mentaires pour envoyer et recevoir des courriels.

Le script est �crit en Perl. Vous pouvez le t�l�charger sur (mailstart.pl.gz).

Configurations du routeur

La connexion active le fichier .../opt/etc/ppp/ip-up. C'est le bon endroit pour �tablir une connexion � notre h�te de service. En ajoutant la ligne :

wget -t 1 --spider MAILSERVER:PORT/xyz &> /dev/null

nous le r�alisons.

Explications des commandes de wget

R�glages du serveur de courriels

Avec l'aide du super serveur inetd, le programme mailstart [1] est activ�. Pour ce faire, nous devons �diter les fichiers

/etc/inetd.conf

/etc/services

Dans ce fichier, nous assignons le port auquel wget doit acc�der. La ligne :

mailstart  4000/tcp # Mailstart

le fait.

/etc/inetd.conf

Dans ce fichier, nous d�finissons quel programme doit �tre d�marr�. inetd contr�le son ex�cution et �crit les �v�nements dans /var/log/syslog.

La ligne :

mailstart  stream  tcp  nowait  root  /usr/sbin/tcpd  /root/bin/mailstart

termine cette �tape. Le premier nom doit �tre le m�me que celui not� dans le fichier /etc/services.

R�glages de mailstart.pl

Le programme peut �tre ajust� avec les variables, � un serveur particulier.

$protokoll

Avec la variable $protokoll, nous pouvons d�finir si les appels doivent �tre �crits dans le journal. Mettre la variable � 1 �crira les appels dans /var/log/mailstart.log. Si la variable est positionn�e � 0 aucun journal ne sera cr��.

Default: 1 create log

$protokoll_ziel

Avec cette variable, nous pouvons d�terminer la cible du journal.

Default: /var/log/mailstart.log

$mailholen

Nous saisissons ici le nom du programme qui traite les courriels. L'utilisateur doit �tre root pour d�marrer ce programme ou le nom doit �tre entr� dans /etc/inetd.conf. Si quelqu'un d'autre veut utiliser le programme, la commande doit �tre d�marr�e avec su USER -c \"COMMAND PARAMETER\" . Si la commande fait plusieurs mots de long, elle doit �tre mise entre guillemets et dont �tre prot�g�e avec des \.

Default (one line):
 
su postmaster -c \"fetchmail -t 40 -a -L /var/log/fetchmail/fetchmail.log -f /home/postmaster/.fetchmailrc\"

$mailsenden

Vous avez ici la place du programme utilis� pour envoyer les courriels. Pour d�marrer ce programme, l'utilisateur doit �tre root ou le nom doit �tre saisi dans /etc/inetd.conf . Si une autre personne veut utiliser le programme, la commande doit d�marrer avec su USER -c \"BEFEHL PARAMETER\". Si la commande fait plusieurs mots de long, elle doit �tre mise entre guillemets et prot�g�e avec \.

Default: sendmail -q

Au fait, une partie du programme est une petite documentation POD qui fournit une petite description. Vous pouvez obtenir la description avec perdoc mailstart.

Test

Avant le test, le super serveur n�cessite d'�tre red�marr� ; /etc/init.d/inetd restart le fera. Vous pouvez maintenant tester avec telnet localhost mailstart la r�ponse du serveur. Vous devriez avoir un affichage identique � ceci :

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HTTP/1.1 220 OK
Date: Sun, 20 Jul 2003 10:45:46 GMT
Server: mailstart/perl (sbsbavaria)
Last-Modified: Sun, 20 Jul 2003 10:45:46 GMT
Content-Type: text/txt
Content-Length: 11
1234567890
Connection closed by foreign host.

Voil�, c'est fait. J'esp�re que vous avez le r�sultat souhait� avec ma description. Si ce n'est pas le cas, nous avons un probl�me.
- Vous, parce que cela ne fonctionne pas.
- Moi, parce que n'ai pas pu vous donner de bonnes informations:-).

T�l�chargements

Liens / R�f�rences