Français
Anglais

Documentations
Programmes

Liens
Divers

Comment ce site est généré

Retour à la page principale




Valid HTML 4.01!

Valid CSS!

Best Viewed With Any Browser

minsmtpd - le serveur smtp minimum en script shell

Pour demarrer minsmtpd :

$ ./minsmtpd.start
$

et pour le stopper :

$ ./minsmtpd.stop
$

Pour l'utiliser avec mutt, rajouter dans le fichier ~/.muttrc la ligne :

set sendmail="~/perso/minsmtpd/sendmail.sh"

Voici en gros comment se passe l'envoi d'un mél d'un site vers un autre site :

+------------------------------+ (3) +------------------------------+
| MTA (sendmail, postfix, ...) |---->| MTA (sendmail, postfix, ...) |
+------------------------------+     +------------------------------+
                              ^   |              | (4)
                              |   |              v
+---------------------------+ |   |  +---------------------------+
| MDA (mail, procmail, ...) | |   |  | MDA (mail, procmail, ...) |-----+
+---------------------------+ |   |  +---------------------------+     |
                              |   |                                    |
                              |   |                                    |
+-----------------------+     |   |  +-----------------------+         |
| MUA (mutt, pine, ...) |-----+   |  | MUA (mutt, pine, ...) |         | (5)
+-----------------------+  (2)    |  +-----------------------+         |
          |                       |              |                     |
          | (1)                   |              | (1)                 |
          v                       |              v                     |
+-------------------+             |  +-------------------+             |
| Boîte aux lettres |             |  | Boîte aux lettres |<------------+
+-------------------+             |  +-------------------+
                                  |
----------------------------------+----------------------------------------
 DOMAINE EMMETEUR                 | DOMAINE RECEVEUR

(1) : consultation des messages ;
(2) : emmission d'un courrier ;
(3) : transfert du courrier entre les deux sites distants ;
(4) : distribution au facteur local ;
(5) : distribution à l'utilisateur.

Le serveur de méls, ou encore MTA, doit remplir deux rôles :

Il faut donc écrire deux programmes distincts. Le premier, sendmail.sh, est appellé par le MUA et lui envoie un message du type :

Date: Wed, 19 Sep 2001 16:22:01 +0200
From: Mathieu DECORE <mdecore@tarsier.chez.moi>
To: Mathieu DECORE <mdecore@chez.moi>
Subject: Salut
Message-ID: <20010919162201.A27651@tarsier.chez.moi>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.2.5i

Salut

Le second, minsmtpd-wrapper, est en permanance à l'écoute du port 25 et se substitue à l'aide de nc au script minsmtpd.sh à chaque connexion. Ce script minsmtpd.sh se contente donc de lire sur l'entrée standard les données émises par le client SMTP, et d'écrire sur la sortie standard les données à transmettre au client SMTP.

Enfin, il faut un programme pour scrutter régulièrement la file d'attente des méls à être traités : c'est le script mqueued.sh.

Le fichier commun contient tous les paramètres de ces différents programmes (numéro du port, intervalle entre deux verifications de la file d'attente, nom de la personne apparaîssant comme expéditeur des méls d'erreur, ...).

Le répertoire format contient les modèles des méls envoyés par le serveur en cas d'erreur. Les types d'erreurs pouvant se produire sont :

Pour chacune de ces erreurs, il y a deux modèles de méls d'erreur : domaine-non-valide et utilisateur-non-valide.

Pour domaine-non-valide, les mots cléfs possibles sont :

Pour utilisateur-non-valide, les mots cléfs possibles sont :

Voici maintenant, par ordre alphabétique, les différents programmes :

commun-smtpd en couleurs commun-smtpd sans couleurs
minsmtpd-wrapper en couleurs minsmtpd-wrapper sans couleurs
minsmtpd.sh en couleurs minsmtpd.sh sans couleurs
minsmtpd.start en couleurs minsmtpd.start sans couleurs
minsmtpd.stop en couleurs minsmtpd.stop sans couleurs
mqueued.sh en couleurs mqueued.sh sans couleurs
sendmail.sh en couleurs sendmail.sh sans couleurs