Voici un exemple qui marche.. en espèrant que celà vous convienne
PROCEDURE xEnvoiDOMINO()
CcOperation::xcObj():vccNomModule="cp_Gestmails" CcOperation::xcObj():vccDescription="Gestion des mails" CcOperation::xcObj():vccNomOperation="Envoi d'un mail via un serveur DOMINO" CcOperation::xcObj():vcdCréation="20050405" CcOperation::xcObj():vcdModification="20050405" CcOperation::xcObj():vccInfCréateur="JPRD" CcOperation::xcObj():vccInfModifieur="JPRD"
QUAND EXCEPTION CcOperation::xcObj():vccNomOperation="Erreur d'exception" CcOperation::xcObj():vccMessageErreur+=ExceptionInfo(errComplet) CcOperation::xcObj():xGenereErreur() RENVOYER Faux FIN
:vcbErreur=Faux vleIndice est un entier vlcStructEnvoi est une chaîne
// Activation de l'objet OLE :ocdDomino=ObjetActif("Notes.NotesSession") SI :ocdDomino=Null ALORS :ocdDomino= allouer un objet OLE "Notes.NotesSession" FIN SI :ocdDomino<>Null ALORS // Connexion à la base de données par défaut :ocdMail=:ocdDomino>>GETDATABASE("" , "") SINON :vcbErreur=Vrai :vccValide="L'accès à Lotus Notes via OLE a échoué, veuillez vérifier l'installation de Lotus Notes" FIN
SI PAS :vcbErreur // On contrôle tout d'abord si on a pu ouvrir une session sur notes SI :xControleDOMINO() ALORS :ocdVisualisation= allouer un objet OLE "Notes.NotesUIWorkspace" // Création du document :ocdDocument=:ocdMail>>CreateDocument // Format du document : Memo :ocdDocument>>form="Memo" // Destinataires du message vlcStructEnvoi="" POUR vleIndice=1 A :vceNbDestinataires SI vleIndice>1 ALORS vlcStructEnvoi+=", " vlcStructEnvoi+=:tcdDestinataires[vleIndice]:vscMail FIN :ocdDocument>>SendTo = vlcStructEnvoi // Destinataires en CC // En copie vlcStructEnvoi="" POUR vleIndice=1 A :vceNbEnCopie SI vleIndice>1 ALORS vlcStructEnvoi+=", " vlcStructEnvoi+=:tcdEnCopie[vleIndice]:vscMail FIN SI :vceNbEnCopie>0 ALORS :ocdDocument>>CopyTo = vlcStructEnvoi FIN // Sujet :ocdDocument>>Subject = :vccSujet // Expéditeur par défaut :ocdDocument>>From = :ocdDomino>>COMMONUSERNAME SI PAS :vcbFormatHTML ALORS // Envoi d'un texte normal SI :xNotesRTF() ALORS :vcbErreur=Faux SINON :vcbErreur=Vrai FIN SINON // Envoi d'un texte au format HTML SI :xNotesHTML() ALORS :vcbErreur=Faux SINON :vcbErreur=Vrai FIN FIN FIN FIN
SI PAS :vcbErreur ALORS :vccValide="Message transmis à LOTUS Notes" FIN
SELON :vcbErreur CAS Vrai RENVOYER Faux CAS Faux RENVOYER Vrai AUTRES CAS RENVOYER Vrai FIN
// Description des paramètres d'entrée/sortie de 'xControleDOMINO' : // // Syntaxe : //[ <Résultat> = ] xControleDOMINO () Contrôle si l'on est bien connecté à domino // // Paramètres : // Aucun // Valeur de retour : // booléen : // Faux si la connexion a échouée ou si elle a été annuleé par l'opérateur PROCEDURE xControleDOMINO()
QUAND EXCEPTION SI Confirmer("La connexion à Lotus Notes n'a pas pu être établie","Vous devez certainement saisir votre mot de passe","Voulez vous retenter une connexion ?") ALORS SI :ocdDomino<>Null ALORS libérer :ocdDomino FIN :ocdDomino=allouer un objet OLE "Notes.NotesSession" :ocdMail=:ocdDomino>>GETDATABASE("" , "") :xControleDOMINO() SINON // nous n'avons pas confirmé donc j'annule l'opération :vccValide="La connexion à Lotus Notes n'a pu être établie : Abandon par l'utilisateur" RENVOYER Faux FIN FIN
// Ouvre la session de mail au sein de LOTUS :ocdMail>>OpenMail TANTQUE PAS :ocdMail>>Isopen Multitâche(1000) :ocdMail>>OpenMail FIN
RENVOYER Vrai
// Envoi d'un texte au format "NORMAL" ou RTF
PROCEDURE xNotesRTF()
QUAND EXCEPTION CcOperation::xcObj():vccNomOperation="Erreur d'exception" CcOperation::xcObj():vccMessageErreur+=ExceptionInfo(errComplet) CcOperation::xcObj():xGenereErreur() RENVOYER Faux FIN
vleIndice est un entier
:ocdCorps = :ocdDocument>>CreateRichTextItem("Body")
// Insertion du corps du message :ocdCorps>>AppendText(:vccCorps)
// Liaison avec les fichiers attachés SI :vceNbFichiers <>0 ALORS :ocdLiens=:ocdDocument>>CreateRichTextItem("Attachment") POUR vleIndice=1 A :vceNbFichiers :ocdFichier = :ocdLiens>>EmBedObject(1454 , "" , :tcdFichiersAttaches[vleIndice]:vscCheminEtNom , "Attachment") FIN FIN
// Enregistrement du document dans LOTUS :ocdDocument>>Save(True, False, False)
SI :vcbVisu ALORS :ocdVisualisation>>EditDocument(True, :ocdDocument) FIN
SI :vcbEnvoiDirect ALORS :ocdDocument>>Send(True) FIN
RENVOYER Vrai
// Description des paramètres d'entrée/sortie de 'xNotesHTML' : // // Syntaxe : //[ <Résultat> = ] xNotesHTML () envoi d'un mail sous NOTES au format HTML // // Paramètres : // Aucun // Valeur de retour : // booléen : // Faux si problème
PROCEDURE xNotesHTML()
QUAND EXCEPTION CcOperation::xcObj():vccNomOperation="Erreur d'exception" CcOperation::xcObj():vccMessageErreur+=ExceptionInfo(errComplet) CcOperation::xcObj():xGenereErreur() RENVOYER Faux FIN
:ocdVisualisation = allouer un objet OLE "Notes.NotesUIWorkspace"
:ocdVisualisation>>EditDocument(True, :ocdDocument)
// envoi du corps du document HTML dans le presse papiers SI ccPressePapiers::xCopieHTML(:vccCorps) ALORS // Colle les infos HTML du presse papiers dans NOTES SI :xNOTESColleHTML() ALORS :ocdVisualisation>>CURRENTDOCUMENT>>Save(True, False, False) SI :vcbEnvoiDirect ALORS :ocdVisualisation>>CURRENTDOCUMENT>>Send(True) FIN RENVOYER Vrai FIN FIN
RENVOYER Faux
// Description des paramètres d'entrée/sortie de 'xNOTESColleHTML' : // // Syntaxe : //[ <Résultat> = ] xNOTESColleHTML () Colle le texte HTML dans le document notes //
PROCEDURE xNOTESColleHTML()
QUAND EXCEPTION SI Confirmer("Je n'ai pas réussi à coller le texte HTML, voulez vous réssayer ") ALORS RENVOYER :xNOTESColleHTML() SINON :vccValide="Impossible de coller le texte HTML : Abandon par l'utilisateur" RENVOYER Faux FIN FIN
// On cole ensuite le code HTML dans NOTES :ocdVisualisation>>CURRENTDOCUMENT>>GOTOFIELD("Body") :ocdVisualisation>>CURRENTDOCUMENT>>Paste
RENVOYER Vrai |