PEGASUS MAIL
Philippe Chartier - lycée Le Corbusier - Aubervilliers

Présentation de Pegasus Mail

Installation sur domaine NT4

Création d'utilisateurs

Quelques améliorations possibles

Enregistrer le nom de l'utilisateur

Vérifier la présence de courrier à la connexion

Écrire un courrier en batch

Transférer le carnet d'adresses et les courriers de Netscape Messenger

Liens utiles

Téléchargements


Présentation de Pegasus Mail

Pegasus Mail est un logiciel client de courrier électronique conçu en 1989 par un néo-zélandais David Harris, la version actuelle est la 3.12c, elle date de février 2000.

Ce que Pegasus Mail fait :
Pegasus Mail permet de relever une infinité de boîtes à lettres, de définir une infinité d'identités pour l'utilisateur (chacune éventuellement liée à une boîte à lettres différente), de créer une infinité de carnets d'adresses, de créer une infinité de listes de diffusion. Il fonctionne aussi bien en monoposte qu'en réseau et permet dans cette situation de faire de la messagerie interne entre les utilisateurs, il a été traduit en français par M.­N. Morency et C. Rousseau du
CIDIF et il est gratuit.

Ce que Pegasus Mail ne fait pas :
Si Pegasus Mail permet de faire de la messagerie interne entre les utilisateurs d'un réseau local ce n'est pas pour autant un serveur SMTP/POP3. Pegasus Mail a la capacité de déposer un fichier texte qu'il sait interpréter comme un courrier électronique dans le dossier de courrier d'un utilisateur. Il n'est pas possible d'envoyer un courrier local en utilisant Netscape Messenger, Eudora ou tout autre logiciel de courrier électronique, par exemple il n'est pas possible de créer un QCM dans une page HTML et de demander à un élève de poster sa réponse dans la boîte à lettre locale du professeur. C'est une limitation qu'il faut connaître.
La fonctionnalité de relais SMTP/POP3 peut être obtenue par l'utilisation de Mercury du même éditeur et également gratuit.

 Retour en début de document


Installation sur domaine NT4

Préambule
Pour la suite du document je vais définir un certain nombre de dossiers et de partages qu'il conviendra d'adapter à la situation locale.
Une connaissance minimale de l'administration d'un serveur NT4 ainsi que de la programmation en batch est nécessaire.

Sur le serveur :
Sur le serveur créer un dossier D:\Messagerie que l'on partage sous le nom Messag$.
Dans ce dossier Messagerie créer un dossier Pmail et un dossier Courrier.
Créer un groupe global Courrier destiné à accueillir les utilisateurs de la messagerie.
Donner le droit Lire et Exécuter (RX) aux membres du groupe Courrier et Contrôle Total aux administrateurs sur le dossier D:\Messagerie et tous ses sous-dossiers. Supprimer tous les autres droits notamment Contrôle Total à Tout le monde donné par défaut à la création du dossier.
Dans le script de connexion au domaine mapper la lettre P sur Messag$ (net use P: \\Serveur\Messag$).

Depuis une station :
Se connecter en administrateur ou avec un compte ayant le droit d'écriture dans le partage Messag$.
Lancer l'installation de Pegasus Mail.
Désigner le dossier P:\Pmail comme dossier d'installation.
Une fois l'installation terminée lancer la francisation du logiciel.
Désigner P:\Pmail comme dossier d'installation au module de francisation s'il ne le trouve pas tout seul.

Lancer Pegasus Mail, le logiciel vous demande alors quel type d'installation vous désirez.
Choisissez la deuxième possibilité :
Plus d'une personne utilise Pegasus Mail...

Je n'ai pu tester complètement la version réseau mais à première vue son comportement est identique à la version multi-utilisateurs en réseau.


Le logiciel vous demande alors de désigner l'emplacement des dossiers de courrier des utilisateurs, désignez le dossier P:\Courrier.

Il faut maintenant créer le premier utilisateur, celui qui nous servira de modèle.
Il faut cocher Administrateur car Pegasus impose qu'il y en ait au moins un même si nous ne créerons pas de compte par ce biais.
Si vous cochez la case Copier les messages... des messages pré définis seront copiés dans le dossier de courrier créé, ces messages se trouvent dans le dossier d'installation de Pegasus Mail (P:\Pmail) avec l'extension .dmi
Nous verrons plus bas qu'il est possible d'envoyer nos propres messages au moment de la création du compte.

Une fois ceci fait, Pegasus Mail se lance sur le compte de l'utilisateur créé.

Il faut maintenant paramétrer correctement le compte de cet utilisateur qui nous servira de modèle:
Vous pouvez définir le serveur SMTP de votre fournisseur d'accès à l'Internet : Outils/Options Internet
Il faut également paramétrer les préférences générales : Outils/Préférences
Par mesure de sécurité vous pouvez par exemple (onglet visualiseurs) définir votre logiciel antivirus comme visualiseur des fichiers de type exe, com, dll, doc, dot, xls etc et même notepad pour les fichiers de type vbs (cf Iloveyou).
Vous pouvez également définir une barre d'outils plus adaptée que celle proposée par défaut , un document d'aide sur la confection d'une barre d'outils personnalisée se trouve dans le dossier P:\Pmail\resource.fr et porte le nom bpanel.txt.

Attention : un défaut de Pegasus Mail francisé peut empêcher l'envoi de pièces jointes dont le nom comporte un espace ou un caractère accentué. Dans l'onglet Envoi du courrier il faut cocher la case Ne pas ajouter de volet d'information aux messages en plusieurs parties.

Prenez soin de correctement paramétrer cet utilisateur qui sera le modèle des autres, toute erreur deviendra difficile à corriger une fois les utilisateurs créés ; l'aide en ligne est précise et utile.

Une fois l'utilisateur modèle correctement paramétré nous allons le sauvegarder en fermant Pegasus Mail.

Sur le serveur :
Dans le dossier D:\Messagerie\Courrier on trouve maintenant un fichier pmail.usr et un dossier Admin.
Le contenu de pmail.usr (fichier texte) est : A;Admin;Administrateur de messagerie ce qui signifie Administrateur (on aurait eu U pour un simple utilisateur) ; nom d'utilisateur ; nom complet.
Effacer pmail.usr (sauf si vous souhaitez conserver cet utilisateur).
Déplacer le dossier D:\Messagerie\Courrier\Admin en D:\Sauvcour (ou le copier si vous souhaitez conserver cet utilisateur).
Dans le dossier D:\Sauvcour se trouve un fichier pmail.ini, ouvrons-le et remplaçons Administrateur de messagerie par $prenom $nom (1 remplacement) et Admin par $user (4 remplacements) puis sauvegardons pmail.ini.

Nous sommes maintenant prêts à créer des utilisateurs en nombre.

Pour pouvoir exécuter Pegasus Mail sur une station du réseau il suffit d'y placer un raccourci vers P:\pmail\winpm-32.exe aucune installation n'est nécessaire (avantage supplémentaire de Pegasus Mail). On peut déclarer le dossier personnel de l'utilisateur (mappé sur une lettre) dans le champ Démarrer en des propriétés du raccourci ceci permet à l'utilisateur de voir en priorité son dossier personnel quand il veut ajouter ou enregistrer des pièces jointes..

Retour en début de document


Création d'utilisateurs

Dans un dossier du serveur nous allons maintenant écrire un fichier batch permettant la création des utilisateurs de la messagerie en nombre.

Ce fichier batch creautil.bat sera appelé avec 3 paramètres, le premier est le nom d'utilisateur de la messagerie, le 2e le nom réel de l'utilisateur et le 3e son prénom réel. Soit :

creautil pdurand Durand Pierre

creautil.bat :

(1) md d:\messagerie\courrier\%1
(2) copy d:\sauvcour\*.* d:\messagerie\courrier\%1\
(3) echo U;%1;%3 %2 >> d:\messagerie\courrier\pmail.usr
(4) woop d:\messagerie\courrier\%1\pmail.ini /C=$user /N=%1
(5) woop d:\messagerie\courrier\%1\pmail.ini /C=$nom /N=%2
(6) woop d:\messagerie\courrier\%1\pmail.ini /C=$prenom /N=%3
(7) xcacls d:\messagerie\courrier\%1 /t /g administrateurs:f %1:c courrier:r;tw /y
(8) echo **** > d:\messagerie\courrier\%1\localsig.pms
(9) echo %3 %2 >> d:\messagerie\courrier\%1\localsig.pms

Quelques explications:

(1) Création du dossier de courrier de l'utilisateur
(2) Copie du contenu du dossier de référence
(3) Ajout de l'utilisateur dans la liste pmail.usr
(4) (5) (6) Personnalisation de pmail.ini en remplaçant les variables $user, $prenom et $nom par les caractéristiques de l'utilisateur créé. On utilise woop.exe un utilitaire gratuit de kik-it softwares.

(7)

Affectation des droits sur le dossier de courrier de l'utilisateur :
- Contrôle total pour le groupe des administrateurs.
- Modifier (RWXD)(RWXD) pour l'utilisateur, il faut qu'il puisse lire son courrier, effacer des messages et paramétrer son compte.
- Accès spécial (W)(non spécifié) pour les membres du groupe courrier, ceci est la fonction "boîte à lettres": possibilité de déposer un courrier dans le dossier mais impossibilité de lire ni de lister le contenu.

L'utilitaire "classique" d'affectation des droits en ligne de commande cacls.exe est inopérant ici car il ne sait pas imposer un accès spécial à un dossier ou à un fichier.


(8) (9)

Création d'une signature personnalisée pour le courrier local de l'utilisateur.


Création en nombre

Pour créer les utilisateurs en nombre la méthode la plus simple est d'utiliser un tableur.
Il faut tout d'abord disposer de la liste des utilisateurs que l'on veut intégrer au service de messagerie. Si vous ne disposez pas d'une telle liste vous pouvez retrouver vos utilisateurs existants dans un fichier texte par la commande:

net user >> users.txt

Vous pouvez maintenant afficher la liste de vos utilisateurs dans une feuille de tableur, le nom en colonne C et le prénom en colonne D. Par une formule de calcul de votre choix on peut calculer le nom d'utilisateur à partir de son nom et de son prénom, que l'on place en colonne B. En colonne A on place l'appel au batch précédemment créé:

  A B C D
1 call creautil.bat clapierre Lapierre Christine
2 call creautil.bat jmartin Martin Jean
3 call creautil.bat mdupont Dupont Martine
4 call creautil.bat pdurand Durand Pierre

Faites attention qu'il n'existe pas de doublon, un test d'existence dans le batch déroutant sur une erreur convient.
On peut maintenant sauvegarder cette feuille de tableur au format texte sous le nom messag.txt, on renomme ensuite en messag.bat que l'on exécute pour créer les comptes de messagerie. Le travail est terminé.

Remarque n°1 : Pour pouvoir créer des utilisateurs dont le nom dépasse 8 caractères il faut tout d'abord reprendre la configuration de Pegasus Mail : dans le dossier de Pegasus Mail lancez pconfig.exe, choisissez Standalone configuration et remplacez ~8 par ~N, sauvegardez et quittez.

Remarque n°2 : Pegasus Mail a été conçu dès l'origine pour s'intégrer aux réseaux Novell Netware et à leur système de messagerie MHS, n'ayant pas une compétence suffisante sur ce type de réseau j'ai pu néanmoins y faire fonctionner Pegasus Mail en appliquant "à la main" des droits identiques à ceux de NT4 : s'agissant d'un réseau administratif de 15 utilisateurs je n'ai pas eu à créer de batch de création automatique d'utilisateurs.

Remarque n°3 : On peut tout à fait faire fonctionner Pegasus Mail dans un réseau de type groupe de travail, un poste est désigné comme serveur de messagerie et le fonctionnement est identique à celui expliqué plus haut mais aucune confidentialité n'est alors possible celle-ci étant garantie par les droits NTFS sur les dossiers du serveur.
La version 4 de Pegasus Mail prévue pour courant 2001 devrait intégrer une possibilité d'accès au compte de messagerie par mot de passe, on pourra alors garantir la confidentialité des messages mais toujours pas leur sécurité : il sera toujours possible à un utilisateur d'effacer le dossier de courrier d'un autre.
 

Retour en début de document


Enregistrer le nom de l'utilisateur

Lors du lancement de Pegasus Mail celui-ci vous accueille par une fenêtre vous demandant votre nom d'utilisateur :

La saisie du nom d'utilisateur lance alors une session de Pegasus Mail pour cet utilisateur. Ce fonctionnement a quelques inconvénients : tout d'abord celui de devoir saisir à nouveau un nom d'utilisateur alors qu'on l'a fait au moment de l'ouverture de session Windows, si cet inconvénient est mineur il n'en va pas de même du suivant :
Si un utilisateur saisit le nom d'un autre (existant dans la liste) Pegasus Mail le reconnaissant (il est inscrit dans le fichier pmail.usr) va ouvrir une session à ce nom, grâce à la sécurité du système de fichier l'usurpateur ne pourra pas accéder aux courriers de celui dont il usurpe l'identité mais s'il envoie un message à un autre utilisateur il sera signé de sa victime, c'est une façon simple de faire de l'usurpation d'identité.

On peut éviter tous ces problèmes en enregistrant le nom de connexion au démarrage de session dans une variable d'environnement connue de Pegasus Mail : pmuser. Il faut pour cela que le nom d'utilisateur du domaine soit identique à celui de l'utilisateur de la messagerie mais ceci semble assez naturel.

Lors du script de connexion au domaine on peut affecter une variable d'environnement grâce à l'utilitaire winset.exe livré sur les cédéroms de Windows 95 (dossier Admin\Apptools\Envvars) et de Windows 98 (dossier tools\Reskit\Scrpting). L'affectation d'une variable d'environnement par la commande set lors du déroulement du script de connexion au domaine n'a lieu que tant que la fenêtre de connexion est en cours, dès la fin du script la variable disparaît, c'est l'intérêt de winset.exe de pouvoir appliquer durablement une variable affectée dans une fenêtre MS-DOS.
On peut donc placer dans le script de connexion :
z:\winset pmuser=%username%
Z: est la lettre affectée au partage Netlogon (Winnt\system32\repl\import\scripts) au moment de l'exécution du script de connexion dans lequel on a placé winset.exe.
Un nouveau problème surgit : la variable d'environnement %username% n'est pas disponible sous Windows 9x (elle l'est sous Windows NT Workstation), nous allons devoir utiliser un utilitaire gratuit de MJ Winkler : putinenv.exe qui permet , si on lui passe le paramètre L, de placer dans l'environnement du poste exécutant script de connexion la variable %username%. Le script de connexion a alors l'allure suivante:

z:\putinenv L [putinenv.exe est placé dans le partage netlogon du serveur]
z:\winset pmuser=%username% [pmuser est affectée durablement du contenu de %username%]

On peut profiter de putinenv pour mapper une lettre d'unité logique (M:) sur le dossier personnel de l'utilisateur partagé sous le nom login$ (partage masqué):

net use M: \\serveur\%username%$

Dorénavant quand Pegasus Mail sera lancé aucun nom d'utilisateur ne sera demandé, la session démarre sous le nom de connexion de l'utilisateur en cours.

Remarque : Comme dit plus haut la variable %username% est disponible sous NT4 Workstation, la variable pmuser, elle, ne l'est pas. Winset.exe ne fonctionne pas non plus sous NT4Wks.
La solution, simple, est de placer dans autoexec.bat :
set pmuser=%username%

Retour en début de document


Vérifier la présence de courrier à la connexion

On peut améliorer le confort d'utilisation de Pegasus Mail en indiquant à l'utilisateur au moment de sa connexion au domaine qu'il a du courrier non lu dans sa boîte de réception.
On dispose pour cela d'un utilitaire gratuit écrit par
Jirí Kuchta qui permet de vérifier la présence de l'indicateur x-pmflags (cet utilitaire a beaucoup d'autres fonctionnalités) dans les messages d'une boîte de réception d'un utilisateur donné, cet indicateur nous renseigne sur le fait que les messages (fichiers de type .cnm) ont été lus ou non.
On place newmail.exe dans le dossier d'installation de Pegasus Mail (P:\Pmail) et depuis le script de connexion on appelle newmail de la façon suivante :

P:\Pmail\newmail -u:%username% -oh -mn -q |find /v "nouveau(x)"
if errorlevel 1 goto fin
if errorlevel 0 start courrier.exe
:fin

On passe à newmail le nom de la boîte à lettres à vérifier ainsi que d'autres paramètres d'exécution (voir documentation jointe à newmail), le mot nouveau(x) n'apparaîtra que si newmail trouve la boîte avec du courrier non lu, on filtre la réponse grâce à la commande "|find /v "nouveau(x)"", si errorlevel vaut 0 alors le mot "nouveau(x)" est apparu dans la réponse on ouvre une fenêtre d'information (courrier.exe).

Un appel à putinenv (voir paragraphe précédent) antérieur à l'exécution de newmail est indispensable pour rendre disponible dans l'environnement la variable %username%.

Retour en début de document


Écrire un courrier en batch

J'ai ressenti le besoin de pouvoir écrire un courrier en batch lorsque j'ai installé une gestion de quotas sur les dossiers personnels des utilisateurs, il fallait trouver un moyen d'informer l'utilisateur du dépassement du quota de son dossier personnel or le seul service de messagerie disponible sur le réseau était celui de Pegasus Mail. J'ai utilisé ensuite cette fonctionnalité pour envoyer un message de bienvenue personnalisé à chaque nouvel utilisateur créé.
La structure d'un courrier est la suivante:

From:
Organization:
To:
Date:
MIME-Version: 1.0
Content-type: text/plain; charset=US-ASCII
Content-transfer-encoding: 7BIT
Subject:
Message-ID: <39E8424C.21847.450AAA@localhost>
X-mailer: Pegasus Mail for Win32 (v3.12cFR)

Corps du message

Écrire un courrier en batch se résume donc à pouvoir écrire un document texte du modèle ci-dessus dans la boîte à lettres du destinataire. Créer ce type de document pose 2 difficultés :

Le nom du fichier doit être unique afin d'éviter un conflit de nom dans le dossier de courrier du destinataire.
La date doit avoir un format précis du type :
Sat, 14 Oct 2000 11:23:56 +0200

Ces deux problèmes peuvent être réglés grâce à l'utilitaire woop de kik-it softwares. Le batch a alors l'allure suivante (on lui passe en paramètre %1:nom du destinataire %2:nom du courrier type, on a pris soin de créer un courrier type dont le nom du destinataire est $dest et la date $date) :

(1) if exist fic.bat del fic.bat
(2) echo set f=d:\messagerie\courrier\%1%\nomfic.cnm >> fic.bat
(3) woop fic.bat /C=nomfic /N=[RND8]
(4) call fic.bat
(5) del fic.bat
(6) type %2 > %f%
(7) woop %f% /C=$dest /N=%1
(8) woop %f% /C=$date /N=[DAY:es], [DATE:dd me yyyy] [TIME:hh:mm:ss] +200

 Quelques explications :

(1) : nettoyage éventuel du dossier
(2) : écriture d'un fichier batch comprenant la commande set
(3) : transformation du fichier batch pour créer un nom de fichier aléatoire sur 8 caractères
(4) : exécution du fichier batch précédemment créé, la variable f contient le nom du courrier à créer
(5) : effacement du batch qui n'est plus nécessaire
(6) : copie du courrier type dans le dossier du destinataire sous un nom aléatoire
(7) : écriture du nom du destinataire dans le courrier
(8) : écriture de la date sous le format voulu dans le courrier

Retour en début de document


Transférer le carnet d'adresses et les courriers de Netscape Messenger

Transférer le carnet d'adresses de Netscape Messenger vers Pegasus Mail

La méthode est simple pour peu que l'on dispose d'un tableur.
Dans Netscape Messenger choisissez Communicator/Carnets d'adresses, sélectionnez le carnet d'adresses que vous voulez exporter, dans le menu Fichier choisissez Exporter choisissez Balise de délimitation et exportez le carnet.

Dans un tableur ouvrez le carnet précédemment exporté en indiquant la tabulation comme délimitation, votre carnet d'adresse va alors apparaître, une adresse par ligne, un champ par colonne. Supprimez les colonnes inutiles et permutez les autres pour obtenir les champs dans l'ordre suivant :
Nom, Émail, Clé, Société, Téléphone, Télécopie, Code postal + Ville, Adresse, Notes, Nom de fichier de la photo
NB : La clé sert à indexer le carnet d'adresses.

Sauvegardez ensuite ce document au format texte avec délimiteur tabulations.
Dans Pegasus Mail, ouvrez un carnet d'adresses destiné à recevoir les adresses en provenance de Netscape Messenger (s'il n'existe pas créez le puis ouvrez le), dans le menu Carnets d'adresses choisissez Importer le texte délimité par tabulation sélectionnez le fichier sauvegardé à la sortie du tableur, votre carnet d'adresses est transféré dans Pegasus Mail.

Remarque : Les carnets d'adresses privés (et aussi les listes de distribution) sont placés dans le dossier de courrier de l'utilisateur, pour qu'un carnet (ou une liste) devienne public (commun à tous les utilisateurs de la messagerie) il suffit de le placer dans le dossier de Pegasus Mail (on alors une protection contre les modifications) ; on peut aussi les placer dans tout dossier dont le chemin est indiqué dans la variable d'environnement pml.

Transférer les courriers de Netscape Messenger vers Pegasus Mail

Dans Netscape Messenger créez un dossier transfert à la racine du dossier de courrier, placez dans ce dossier tous les courriers que vous voulez transférer dans Pegasus Mail, fermez Messenger.
Avec l'explorateur ouvrez le dossier de courrier du profil ayant créé le dossier transfert (probablement ) :

C:\Program Files\Netscape\Users\Defaut\Mail

Vous trouverez 2 fichiers transfert, l'un portant l'extension .snm et l'autre sans extension ; copiez celui qui ne porte pas d'extension dans votre dossier de courrier Pegasus Mail, ajoutez-lui l'extension .mbx puis lancez Pegasus Mail, vous verrez apparaître un dossier de courrier transfert.mbx contenant tous les messages sauvegardés, il ne vous reste plus qu'à les classer dans vos différents dossiers puis à supprimer le dossier transfert.mbx.

Retour en début de document


Liens utiles

Le site officiel de Pegasus Mail est une source importante d'informations et de liens vers des sites d'utilitaires.

Vous pouvez également consulter le forum de news consacré à Pegasus Mail, si votre serveur de news ne l'offre pas vous pouvez consulter ce site qui vous indiquera un serveur public offrant le forum comp.mail.pegasus-mail.ms-windows.

Il existe également une liste de diffusion consacrée à Pegasus Mail à laquelle vous pouvez vous abonner en envoyant un message dont l'objet est "SUBSCRIBE PMAIL votrenom" à listserv@bama.ua.edu, conservez précieusement le message de confirmation de votre abonnement il contient la procédure de désabonnement et la liste des commandes recevables par le robot de liste. Par défaut l'abonnement est configuré pour vous envoyer un courrier quotidien contenant les contributions à la liste. Une fois abonné à la liste de diffusion vos messages devront être adressés à pmail@bama.ua.edu.

Retour en début de document


Téléchargements

Cliquez ici pour télécharger la version 3.12c de Pegasus Mail (3341 ko).

Cliquez ici pour télécharger le module de francisation (469 ko).

Cliquez ici pour télécharger un exemple de fichier de barre d'outils (1 ko).

Cliquez ici pour télécharger Woop (61 ko).

Cliquez ici pour télécharger Xcacls (29 ko).

Cliquez ici pour télécharger Putinenv (22 ko).

Cliquez ici pour télécharger Newmail (114 ko).

Cliquez ici pour télécharger Courrier (15 ko).

Cliquez ici pour télécharger la librairie vb40032.dll nécessaire au fonctionnement de courrier.exe (382 ko).

Cliquez ici pour télécharger la notice d'utilisation de Pegasus Mail au format pdf (1331 ko).

Cliquez ici pour télécharger Adobe Acrobat reader.

Retour en début de document