Up ! Mail Service

Ce programme présente l'usage d'Up ! Mail Service en tant que client envoyant et recevant des courriers électroniques.

Les fichiers sources sont dans ${UPS_HOME}/upsnet/demo/${UPS_LANGUAGE}/clientmls/.

Configuration

Configuration d'Up ! Mail Service

; -------------------------------------------------------------------
; 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

Script de sécurité d'Up ! Security Manager

/* ------------------------------------------------------------------- */
/* 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

Script d'annuaire électronique d'Up ! Mail Service

/* ------------------------------------------------------------------- */
/* 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

Mode compilé

Commande de compilation

upscmp Source=clientmls.upl

Commande d'exécution

Exécution du serveur

upssrv PasDOrb=Oui Module1=UpsMls

Exécution du client

clientmls NbServeurs=0

Mode interprété

Exécution du serveur

upssrv PasDOrb=Oui Module1=UpsMls

Exécution du client

upssng Source=clientmls.upl NbServeurs=0

Fichier source

Source Composant "Exemple d'emploi d'Up ! Mail Service" Version 4.0.0;

ImporterModule
/************/
Variable
/******/
Prive :
/*****/
Fonction ChercherUtilisateur(NomDeLUtilisateur : Caractere) Retourner Nul Ou Utilisateur
/**************************************************************************************/
Variable
/******/
Debut
Si NomDeLUtilisateur==Nul Alors Fin Si U=Utilisateur.EnumererObjets(Nul);
TantQue U!=Nul Faire Fin TantQue
Fin Fonction

Procedure AfficherCourrier(Courrier: Nul Ou CourrierElectronique)
/***************************************************************/
Variable
/******/
Debut
Pour C3=Courrier.Emetteurs.ParcoursAuDebut() JusquA Courrier.Emetteurs.DernierElement() Faire Fin Pour
Pour C3=Courrier.Destinataires.ParcoursAuDebut() JusquA Courrier.Destinataires.DernierElement() Faire Fin Pour
Si Courrier.DestinatairesCopie!=Nul Alors Fin Si Si Courrier.DestinatairesCaches!=Nul Alors Fin Si
Si Courrier.DestinataireReponse!=Nul Alors Fin Si Ecran.Ecrire("Date: "+Caractere(Courrier.DateEnvoi));
Ecran.Ecrire("Message-ID: "+Courrier.Identifiant);
Si Courrier.MotsCle!=Nul Alors Fin Si
Si Courrier.MotsCle!=Nul Alors Fin Si
Ecran.Ecrire("Subject: "+Courrier.ObjetDuCourrier);
E2=Courrier.EntitePrimaire;
Si E2!=Nul Alors Fin Si
Si Courrier.ListeDEntitesSecondaires!=Nul Alors Fin Si
Ecran.Ecrire(");
Fin Procedure

Principal
/*******/
Variable
/******/
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 Fin Si
ListeCourriers=B.ListerCourriersElectroniques("/INBOX");
Si ListeCourriers!=Nul Alors 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 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 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

Résultat de l'exécution

From: scott@local To: allen@local Cc: smith@local Cc: king@local Date: 06/04/2006 16:16:29 Message-ID: d41d8cd98f00b204e9800998ecf8427e Keywords: Mon mot clé Reference: Ma référence Subject: Objet du courrier Bonjour Jean-Pierre, Peux-tu me transmettre l'adresse mail du Président du tribunal de Chambéry ou du juge commissaire qui s'est occupé du redressement judiciaire Enron ? Merci. Eric. L'integrite de ce message n'etant pas assuree sur internet, Natexis Banques Populaires ne peut etre tenu responsable de son contenu. Toute utilisation ou diffusion non autorisee est interdite. Si vous n'etes pas destinataire de ce message, merci de le detruire et d'avertir l'expediteur. The integrity of this message cannot be guaranteed on the Internet. Natexis Banques Populaires can not therefore be considered responsible for the contents.Any unauthorized use or dissemination is prohibited. If you are not the intended recipient of this message, then please delete it and notify the sender Piece jointe: ContenuApplicationMicrosoftWord Piece jointe: ContenuApplicationMicrosoftExcel From: scott@local To: allen@local Cc: smith@local Cc: king@local Date: 06/04/2006 16:16:36 Message-ID: d41d8cd98f00b204e9800998ecf8427e Keywords: Mon mot cle Reference: Ma reference Subject: Objet du courrier Bonjour Jean-Pierre, Peux-tu me transmettre l'adresse mail du President du tribunal de Chambery ou du juge commissaire qui s'est occupe du redressement judiciaire Enron ? Merci. Eric. L'integrite de ce message n'etant pas assuree sur internet, Natexis Banques Populaires ne peut etre tenu responsable de son contenu. Toute utilisation ou diffusion non autorisee est interdite. Si vous n'etes pas destinataire de ce message, merci de le detruire et d'avertir l'expediteur. The integrity of this message cannot be guaranteed on the Internet. Natexis Banques Populaires can not therefore be considered responsible for the contents.Any unauthorized use or dissemination is prohibited. If you are not the intended recipient of this message, then please delete it and notify the sender Piece jointe: ContenuApplicationMicrosoftWord Piece jointe: ContenuApplicationMicrosoftExcel