Bonjour,
Je dois déplacer des messages de notre messagerie intégrée vers une messagerie Outlook.
Le principe consiste à prendre tous les messages de la boîte de réception de la messagerie intégrée pour les mettre dans la boîte de réception d'Outlook en les déposant dans des répertoires propres à chaque dossier. Ce principe vaut aussi pour les brouillons, et les éléments envoyés.
Le but est donc de se retrouver dans Outlook avec une arborescence de ce type (XXXXX correspond au nom de la société):
Je me sers de l'ActiveX Microsoft Outlook 10.0 Object Library (la version 10.0 m'est imposée)Boite de réception
=>Boîte de réception XXXXX
==>Répertoire dossier A
==>Répertoire dossier B
Eléments envoyés
=>Elément envoyés XXXXX
==>Répertoire dossier A
==>Répertoire dossier B
Brouillons
=>Brouillons XXXXX
==>Répertoire dossier A
==>Répertoire dossier B
Voici mon prototype sous Delphi 7
Il fonctionne pour la boite de réception et les brouillons (olFolderInbox et olFolderDrafts):
Code Delphi : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 procedure TestOutlook2(FolderType : TOleEnum); var Outlook : TOutlookApplication; Mapi : NameSpace; Box, : MAPIFolder; XXXXXFolder, SpecificFolder : MAPIFolder; SafeMailItem : Variant; begin try Outlook := TOutlookApplication.Create(nil); try Outlook.ConnectKind := ckRunningOrNew; try Outlook.Connect(); Mapi := Outlook.GetNamespace('MAPI'); Found := False; Box := Mapi.GetDefaultFolder(FolderType); for i := 1 to Box.Folders.Count do begin XXXXXFolder := Box.Folders.Item(i); if (Box.Folders.Item(i).Name = XXXXX_BOX_NAME) then begin Found := True; Break; end; end; if not(Found) then XXXXXFolder := Box.Folders.Add(XXXXX_BOX_NAME, FolderType); finally Outlook.Disconnect(); end; finally FreeAndNil(Outlook); end; except on e : SysUtils.Exception do begin ShowMessage(e.Message); ShowMessage(e.ClassName); end end; end;
Pour les éléments envoyés (olFolderSentMail), une exception est déclenchée.
e.Message renvoie "Impossible de terminer l'opération. Une ou plusieurs valeurs de paramètres ne sont pas valides"
e.ClassName renvoie "EOleException"
Une idée du problème ?
Partager