Les fichiers sources sont dans ${UPS_HOME}/upsnet/demo/${UPS_LANGUAGE}/clientmls/.
; ------------------------------------------------------------------- 
; Fichier    : upsmls.ini                                             
; Objet      : Initialisation d'Up ! Mail Service.           
;                                                                     
; Module      : Up ! Application System.                             
; Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.                    
; ------------------------------------------------------------------- 
;                          Observations                               
;                                                                      
;                                                                      
; ------------------------------------------------------------------- 
[UpsMls]
NbClients=8
NbServeurs=1
URIServeurImap=imap://local:143
URIServeurPop=pop://local:110
URIServeurSmtp=smtp://local:25
[UpsNet]
GardeReseau=3600
NbServeurs=0
[UpsOrb]
AnnuaireLocal=mon-annuaire
[UpsSec]
Securite=ma-securite
/* ------------------------------------------------------------------- */
/* Fichier    : masecurite-monannuaire.upl                             */
/* Objet      : Exemple d'emploi d'Up ! 5GL.                           */
/*                                                                     */
/* Module      : Up ! Application System.                             */
/* Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.                    */
/* ------------------------------------------------------------------- */
/*                          Observations                               */
/*                                                                     */ 
/*                                                                     */ 
/* ------------------------------------------------------------------- */
Source Securite "Exemple de l'emploi des annuaires" Version 4.0.0;
Securite
/******/
Debut
AjouterUtilisateur("scott", "Description de scott", Nul, Nul, Nul);
AjouterUtilisateur("allen", "Description de allen", Nul, Nul, Nul);
AjouterUtilisateur("smith", "Description de smith", Nul, Nul, Nul);
AjouterUtilisateur("clark", "Description de clark", Nul, Nul, Nul);
AjouterUtilisateur("king", "Description de king", Nul, Nul, Nul);
Fin Securite
/* ------------------------------------------------------------------- */
/* Fichier    : monannuaire-ajouter.upl                                */
/* Objet      : Exemple d'emploi d'Up ! 5GL.                           */
/*                                                                     */
/* Module      : Up ! Application System.                              */
/* Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.                    */
/* ------------------------------------------------------------------- */
/*                          Observations                               */
/*                                                                     */
/*                                                                     */
/* ------------------------------------------------------------------- */
Source AnnuaireElectronique "Exemple de l'emploi des annuaires" Version 4.0.0;
AnnuaireElectronique
/******************/
Debut
AjouterAdresseElectronique("allen", "allen@local");
AjouterAdresseElectronique("clark", "clark@local");
AjouterAdresseElectronique("king", "king@local");
AjouterAdresseElectronique("scott", "scott@local");
AjouterAdresseElectronique("scott", "contact@local");
AjouterAdresseElectronique("smith", "smith@local");
AjouterAbonnementElectronique("info", "info@local", "Informations générales");
AjouterAbonne("info", "allen@local");
AjouterAbonne("info", "clark@local");
AjouterAbonne("info", "king@local");
AjouterAbonne("info", "scott@local");
Fin AnnuaireElectronique
upscmp Source=clientmls.upl
upssrv PasDOrb=Oui Module1=UpsMls
clientmls NbServeurs=0
upssrv PasDOrb=Oui Module1=UpsMls
upssng Source=clientmls.upl NbServeurs=0
Source Composant "Exemple d'emploi d'Up ! Mail Service" Version 4.0.0;
ImporterModule
/************/
   UpsWww(<UpsWww>, ImporterDefinitions);
   UpsMls(<UpsMls>, ImporterDefinitions);
Variable
/******/
   B : Nul Ou BoiteAuxLettresElectronique;
   C : Nul Ou CourrierElectronique;
   C2 : Nul Ou CourrierElectronique;
   F : Nul Ou Fichier;
   E : Nul Ou EntiteContenuInternet;
   ListePiecesJointes : Nul Ou ListeDe Nul Ou EntiteContenuInternet;
Prive :
/*****/
Fonction ChercherUtilisateur(NomDeLUtilisateur : Caractere) Retourner Nul Ou Utilisateur
/**************************************************************************************/
Variable
/******/
   U : Nul Ou Utilisateur;
Debut
Si NomDeLUtilisateur==Nul Alors
   Retourner Nul;
Fin Si
U=Utilisateur.EnumererObjets(Nul);
TantQue U!=Nul Faire
   Si U.Nom==NomDeLUtilisateur Alors
   
      Retourner U;
   
Fin Si
   U=Utilisateur.EnumererObjets(U);
Fin TantQue
Fin Fonction
Procedure AfficherCourrier(Courrier: Nul Ou CourrierElectronique)
/***************************************************************/
Variable
/******/
   C3 : Caractere;
   E2 : Nul Ou EntiteContenuInternet;
   L : Nul Ou Caractere;
Debut
Pour C3=Courrier.Emetteurs.ParcoursAuDebut() JusquA Courrier.Emetteurs.DernierElement() Faire
   Ecran.Ecrire("From: "+C3);
Fin Pour
Pour C3=Courrier.Destinataires.ParcoursAuDebut() JusquA Courrier.Destinataires.DernierElement() Faire
   Ecran.Ecrire("To: "+C3);
Fin Pour
Si Courrier.DestinatairesCopie!=Nul Alors
   Pour C3=Courrier.DestinatairesCopie.ParcoursAuDebut() JusquA Courrier.DestinatairesCopie.DernierElement() Faire
   
      Ecran.Ecrire("Cc: "+C3);
   
Fin Pour
Fin Si
Si Courrier.DestinatairesCaches!=Nul Alors
   Pour C3=Courrier.DestinatairesCaches.ParcoursAuDebut() JusquA Courrier.DestinatairesCaches.DernierElement() Faire
   
      Ecran.Ecrire("Cc: "+C3);
   
Fin Pour
Fin Si
Si Courrier.DestinataireReponse!=Nul Alors
   Ecran.Ecrire("Reply-to: "+Courrier.DestinataireReponse);
Fin Si
Ecran.Ecrire("Date: "+Caractere(Courrier.DateEnvoi));
Ecran.Ecrire("Message-ID: "+Courrier.Identifiant);
Si Courrier.MotsCle!=Nul Alors
   Pour C3=Courrier.MotsCle.ParcoursAuDebut() JusquA Courrier.MotsCle.DernierElement() Faire
   
      Ecran.Ecrire("Keywords: "+C3);
   
Fin Pour
Fin Si
Si Courrier.MotsCle!=Nul Alors
   Pour C3=Courrier.References.ParcoursAuDebut() JusquA Courrier.References.DernierElement() Faire
   
      Ecran.Ecrire("Reference: "+C3);
   
Fin Pour
Fin Si
Ecran.Ecrire("Subject: "+Courrier.ObjetDuCourrier);
E2=Courrier.EntitePrimaire;
Si E2!=Nul Alors
   F=E2.LireContenu(LectureTexte);
   TantQue Non F.FinDeFlux Faire
   
      ?=F.LireUneLigne(L);
      Ecran.Ecrire(L);
   
Fin TantQue
   F.Fermer();
Fin Si
Si Courrier.ListeDEntitesSecondaires!=Nul Alors
   Pour E2=Courrier.ListeDEntitesSecondaires.ParcoursAuDebut() JusquA Courrier.ListeDEntitesSecondaires.DernierElement() Faire
   
      Ecran.Ecrire("Piece jointe: "+Caractere(E2.TypeContenu));
   
Fin Pour
Fin Si
Ecran.Ecrire(");
Fin Procedure
Principal
/*******/
Variable
/******/
   ListeCourriers : Nul Ou ListeDe Nul Ou CourrierElectronique;
   Courrier : Nul Ou CourrierElectronique;
   S : Nul Ou ServeurMessageriePop;
   S2 : Nul Ou ServeurMessagerieImap;
Debut
B=BoiteAuxLettresElectronique(ChercherUtilisateur("scott"));
C=B.CreerCourrierElectronique("Objet du courrier", Faux, "scott@local");
F=Fichier("/tmp/texte.txt", LectureTexte);
E=EntiteContenuInternet(ContenuTextPlain,IFlux(F));
F.Fermer();
C.ModifierEntitePrimaire(E);
F=Fichier("/tmp/essai.doc", LectureBinaire);
E=EntiteContenuInternet(ContenuApplicationMicrosoftWord,IFlux(F));
F.Fermer();
E.ModeEncodage=ModeEncodageBase64Internet;
ListePiecesJointes=ListeDe(E);
F=Fichier("/tmp/essai.xls", LectureBinaire);
E=EntiteContenuInternet(ContenuApplicationMicrosoftExcel,IFlux(F));
F.Fermer();
E.ModeEncodage=ModeEncodageBase64Internet;
ListePiecesJointes+=E;
C.ModifierListeDEntitesSecondaires(ListePiecesJointes);
E=Nul;
ListePiecesJointes=Nul;
C.AjouterDestinaire("allen@local", Faux, Faux);
C.AjouterDestinaire("clark@local", Faux, Faux);
C.AjouterDestinaire("scott@local", Vrai, Faux);
C.AjouterDestinaire("king@local", Vrai, Vrai);
C.ModifierDestinaire("scott@local", "smith@local", Vrai, Faux);
C.SupprimerDestinaire("clark@local", Faux, Faux);
C.AjouterMotCle("Mon mot clé");
C.AjouterMotCle("Mon second mot clé");
C.ModifierMotCle("Mon second mot clé", "Mon autre second mot clé");
C.SupprimerMotCle("Mon autre second mot clé");
C.AjouterReference("Ma référence");
C.AjouterReference("Ma seconde référence");
C.ModifierReference("Ma seconde référence", "Ma autre seconde référence");
C.SupprimerReference("Ma autre seconde référence");
C.ChangerEtat(CourrierAEnvoyer);
C.ChangerEtat(CourrierEnvoye);
C.ChangerEtat(CourrierNonLu);
C.ChangerEtat(CourrierRecu);
C.ChangerEtat(CourrierSupprime);
C.ChangerEtat(CourrierBrouillon);
C.ChangerEtatNonLu(Vrai);
C.ChangerEtatNonLu(Faux);
C.ChangerEtatUrgent(Vrai);
C.ChangerEtatUrgent(Faux);
C.ChangerEtatIndesirable(Vrai);
C.ChangerEtatIndesirable(Faux);
C.ChangerEtatTransfere(Vrai);
C.ChangerEtatTransfere(Faux);
C2=C.Transferer("scott@local", "king@local");
C2.Supprimer();
C2=C.Repondre();
C2.Supprimer();
C.Deplacer("/INBOX");
C2=C.Copier("/DRAFT");
C2.ChangerEtat(CourrierAEnvoyer);
C.ExporterCourrierElectronique("/tmp/mon-courrier.bin");
C=B.ImporterCourrierElectronique("/tmp/mon-courrier.bin", "/DRAFT", Vrai, Faux, Faux, Faux, Faux, Faux, Faux, Faux, Vrai);
ListeCourriers=B.ListerCourriersElectroniques(CourrierAEnvoyer);
Si ListeCourriers!=Nul Alors
   Pour Courrier=ListeCourriers.ParcoursAuDebut() JusquA ListeCourriers.DernierElement() Faire
   
      AfficherCourrier(Courrier);
   
Fin Pour
Fin Si
ListeCourriers=B.ListerCourriersElectroniques("/INBOX");
Si ListeCourriers!=Nul Alors
   Pour Courrier=ListeCourriers.ParcoursAuDebut() JusquA ListeCourriers.DernierElement() Faire
   
      AfficherCourrier(Courrier);
   
Fin Pour
Fin Si
B.EnvoyerCourriersElectroniques();
B.Supprimer();
B=BoiteAuxLettresElectronique(ChercherUtilisateur("scott"));
S=ServeurMessageriePop("pop://local:110", "king", ");
S.RecevoirCourriersElectroniques(B);
ListeCourriers=B.ListerCourriersElectroniques(CourrierNonLu);
Si ListeCourriers!=Nul Alors
   Pour Courrier=ListeCourriers.ParcoursAuDebut() JusquA ListeCourriers.DernierElement() Faire
   
      AfficherCourrier(Courrier);
   
Fin Pour
Fin Si
B.Supprimer();
B=BoiteAuxLettresElectronique(ChercherUtilisateur("scott"));
S2=ServeurMessagerieImap("imap://local:143", "allen", ");
S2.RecevoirCourriersElectroniques(B);
ListeCourriers=B.ListerCourriersElectroniques(CourrierNonLu);
Si ListeCourriers!=Nul Alors
   Pour Courrier=ListeCourriers.ParcoursAuDebut() JusquA ListeCourriers.DernierElement() Faire
   
      AfficherCourrier(Courrier);
   
Fin Pour
Fin Si
B=BoiteAuxLettresElectronique(ChercherUtilisateur("clark"));
C=B.CreerCourrierElectronique("Informations");
F=Fichier("/tmp/texte.txt", LectureTexte);
E=EntiteContenuInternet(ContenuTextPlain,IFlux(F));
F.Fermer();
C.ModifierEntitePrimaire(E);
C.AjouterDestinaire("info@local");
C.ChangerEtat(CourrierAEnvoyer);
B.EnvoyerCourriersElectroniques();
Fin Principal