OVH Cloud OVH Cloud

Créer un dossier dans Outlook 2003

7 réponses
Avatar
thibault.gindre
Bonjour

J'ai cr=E9=E9 une proc=E9dure d'envoi d'email par la cr=E9ation d'un objet
automation "outlook.application".

Le processus d'envoi se d=E9roule correctement mais j'aimerais
maintenant pouvoir placer le mail envoy=E9 dans un sous-dossier, qui
serait =E0 cr=E9er s'il n'existe pas.

Pour cela, je n'arrive pas d'une part =E0 trouver comment cr=E9er un
dossier et d'autre part comment d=E9placer un mail du dossier "El=E9ments
envoy=E9s" vers le bon sous-dossier.

Pouvez-vous m'indiquer quelques pistes ?

Merci

7 réponses

Avatar
paratge
a écrit :
Bonjour

J'ai créé une procédure d'envoi d'email par la création d'un objet
automation "outlook.application".

Le processus d'envoi se déroule correctement mais j'aimerais
maintenant pouvoir placer le mail envoyé dans un sous-dossier, qui
serait à créer s'il n'existe pas.

Pour cela, je n'arrive pas d'une part à trouver comment créer un
dossier et d'autre part comment déplacer un mail du dossier "Eléments
envoyés" vers le bon sous-dossier.

Pouvez-vous m'indiquer quelques pistes ?

Merci




Salut,


Pour créer 1 répertoire : fRepCrée(UnitéMonRepMonSousRep)
Si MonRep n'existe pas il le crée aussi.

Pour Outlook, je connais pas trop 2003, mais outlook en général stocke
ses infos dans 1 fichier ".pst"

Si ça peut t'aider...
Avatar
thibault.gindre
paratge a écrit :

a écrit :
> Bonjour
>
> J'ai créé une procédure d'envoi d'email par la création d'un ob jet
> automation "outlook.application".
>
> Le processus d'envoi se déroule correctement mais j'aimerais
> maintenant pouvoir placer le mail envoyé dans un sous-dossier, qui
> serait à créer s'il n'existe pas.
>
> Pour cela, je n'arrive pas d'une part à trouver comment créer un
> dossier et d'autre part comment déplacer un mail du dossier "Elémen ts
> envoyés" vers le bon sous-dossier.
>
> Pouvez-vous m'indiquer quelques pistes ?
>
> Merci
>

Salut,


Pour créer 1 répertoire : fRepCrée(UnitéMonRepMonSousRep)
Si MonRep n'existe pas il le crée aussi.

Pour Outlook, je connais pas trop 2003, mais outlook en général stocke
ses infos dans 1 fichier ".pst"

Si ça peut t'aider...



Merci beaucoup pour la réponse.

Mais mon but n'est pas de créer un dossier sur mon disque mais dans
l'arborescence d'Outlook. Dans mon dossier "Eléments Envoyés", je
voudrais créer un sous-dossier dynamiquement par Windev et placer des
emails dedans.

Thibault
Avatar
Gilles TOURREAU
avait écrit le 22/09/2006 :
Bonjour

J'ai créé une procédure d'envoi d'email par la création d'un objet
automation "outlook.application".

Le processus d'envoi se déroule correctement mais j'aimerais
maintenant pouvoir placer le mail envoyé dans un sous-dossier, qui
serait à créer s'il n'existe pas.

Pour cela, je n'arrive pas d'une part à trouver comment créer un
dossier et d'autre part comment déplacer un mail du dossier "Eléments
envoyés" vers le bon sous-dossier.

Pouvez-vous m'indiquer quelques pistes ?

Merci



Pour récuperer un répertoire dans Outlook :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/olobjMailItem.asp

Et ensuite pour ajouter un répertoire :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off2000/html/olobjMailItem.asp

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
thibault.gindre
Merci bien pour le lien, je vais essayer d'exploiter tout ça...

J'ai quand même du mal à retranscrire le vb en wd, si je pouvais
avoir un peu d'assistance à ce niveau ce serait sympa !

Cordialement,

Thibault


Gilles TOURREAU a écrit :

avait écrit le 22/09/2006 :
> Bonjour
>
> J'ai créé une procédure d'envoi d'email par la création d'un ob jet
> automation "outlook.application".
>
> Le processus d'envoi se déroule correctement mais j'aimerais
> maintenant pouvoir placer le mail envoyé dans un sous-dossier, qui
> serait à créer s'il n'existe pas.
>
> Pour cela, je n'arrive pas d'une part à trouver comment créer un
> dossier et d'autre part comment déplacer un mail du dossier "Elémen ts
> envoyés" vers le bon sous-dossier.
>
> Pouvez-vous m'indiquer quelques pistes ?
>
> Merci

Pour récuperer un répertoire dans Outlook :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off200 0/html/olobjMailItem.asp

Et ensuite pour ajouter un répertoire :

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/off200 0/html/olobjMailItem.asp

Cordialement

--
Gilles TOURREAU
Responsable Informatique


Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
thibault.gindre
Re-bonjour

C'est fou ça... ça fait 4 jours quasi non stop que je cherche un
moyen de piloter outlook par Windev pour pouvoir créer et déplacer
des folders de mon fichier PST, et j'ai l'impression en cherchant sur
tous les moteurs de recherche et les sites spécialisés, d'être le
seul à avoir imaginé pouvoir faire ça !

Si quelqu'un avait la moindre idée pour m'aider à débloquer la
situation, il serait le bienvenu !

Cordialement,

Thibault
Avatar
Thibault
a écrit :

Bonjour

J'ai créé une procédure d'envoi d'email par la création d'un objet
automation "outlook.application".

Le processus d'envoi se déroule correctement mais j'aimerais
maintenant pouvoir placer le mail envoyé dans un sous-dossier, qui
serait à créer s'il n'existe pas.

Pour cela, je n'arrive pas d'une part à trouver comment créer un
dossier et d'autre part comment déplacer un mail du dossier "Eléments
envoyés" vers le bon sous-dossier.

Pouvez-vous m'indiquer quelques pistes ?

Merci




Re Bonjour

Finalement, j'ai trouvé la réponse tout seul, je m'auto-répond pour
donner la solution, des fois que ça interesse quelqu'un...
Il est peut-être possible de le simplifier ou de le rendre plus
fiable, surtout au moment du déplacement du mail dans le nouveau
dossier, mais pour le moment, ça marche alors je vais en rester là !



PROCEDURE EnvoiMail(expe,dest,obj,corps,attach)

outlook est un objet OLE dynamique
email est un objet OLE dynamique
NameSpace est un objet OLE dynamique
MyFolder est un objet OLE dynamique
MyNewFolder est un objet OLE dynamique
FolderFound est un objet OLE dynamique
SentMail est un objet OLE dynamique
Fld est un objet OLE dynamique

NbItems est un entier
sAnnee est une chaîne="2006"
i est un entier=5 //Dossier Eléments envoyés
Deja est un booléen

outlook=allouer un objet OLE "outlook.application" //Définit l'objet
automation outlook
NameSpace=outlook>>GetNameSpace("MAPI") //Se place dans le MAPI
MyFolder=NameSpace>>GetDefaultFolder(i) //Définit le folder sur lequel
on va se situer (i)
Fld=MyFolder>>folders

// Recherche folder existant
FolderFound=Fld>>getfirst()
TANTQUE FolderFound<>Null
SI FolderFound>>name=sAnnee ALORS
Deja=Vrai
SORTIR
FIN
Fld>>getnext()
FIN

SI Dejaúux ALORS
MyNewFolder=MyFolder>>Folders>>Add(sAnnee) //Crée le nouveau folder
SINON
MyNewFolder=MyFolder>>folders(sAnnee)//Récupère le folder existant
FIN

email=outlook>>createItem(0) //Crée l'objet email
email>>toÞst //adresse // affecte un destinataire a l'email
email>>subject=obj
email>>body=corps // Affecte un corps à l'email
email>>attachments>>add(attach)// Affecte un fichier joint à l'email
email>>send() // Envoie l'email

Info("Message envoyé")

//MyFolder>>display()
NbItems=MyFolder>>items>>count //Compte le nombre d'emails dans le
folder sélectionné
SentMail=MyFolder>>items(NbItems) //Se place sur le dernier email du
folder (celui qu'on vient d'envoyer)
SentMail>>Move(MyNewFolder) //Déplace l'email sur lequel on est placé
dans le nouveau folder créé plus haut

Info("Traitement terminé")
Avatar
Thibault
a écrit :

Bonjour

J'ai créé une procédure d'envoi d'email par la création d'un objet
automation "outlook.application".

Le processus d'envoi se déroule correctement mais j'aimerais
maintenant pouvoir placer le mail envoyé dans un sous-dossier, qui
serait à créer s'il n'existe pas.

Pour cela, je n'arrive pas d'une part à trouver comment créer un
dossier et d'autre part comment déplacer un mail du dossier "Eléments
envoyés" vers le bon sous-dossier.

Pouvez-vous m'indiquer quelques pistes ?

Merci




Re Bonjour

Finalement, j'ai trouvé la réponse tout seul, je m'auto-répond pour
donner la solution, des fois que ça interesse quelqu'un...
Il est peut-être possible de le simplifier ou de le rendre plus
fiable, surtout au moment du déplacement du mail dans le nouveau
dossier, mais pour le moment, ça marche alors je vais en rester là !



PROCEDURE EnvoiMail(expe,dest,obj,corps,attach)

outlook est un objet OLE dynamique
email est un objet OLE dynamique
NameSpace est un objet OLE dynamique
MyFolder est un objet OLE dynamique
MyNewFolder est un objet OLE dynamique
FolderFound est un objet OLE dynamique
SentMail est un objet OLE dynamique
Fld est un objet OLE dynamique

NbItems est un entier
sAnnee est une chaîne="2006"
i est un entier=5 //Dossier Eléments envoyés
Deja est un booléen

outlook=allouer un objet OLE "outlook.application" //Définit l'objet
automation outlook
NameSpace=outlook>>GetNameSpace("MAPI") //Se place dans le MAPI
MyFolder=NameSpace>>GetDefaultFolder(i) //Définit le folder sur lequel
on va se situer (i)
Fld=MyFolder>>folders

// Recherche folder existant
FolderFound=Fld>>getfirst()
TANTQUE FolderFound<>Null
SI FolderFound>>name=sAnnee ALORS
Deja=Vrai
SORTIR
FIN
Fld>>getnext()
FIN

SI Dejaúux ALORS
MyNewFolder=MyFolder>>Folders>>Add(sAnnee) //Crée le nouveau folder
SINON
MyNewFolder=MyFolder>>folders(sAnnee)//Récupère le folder existant
FIN

email=outlook>>createItem(0) //Crée l'objet email
email>>toÞst //adresse // affecte un destinataire a l'email
email>>subject=obj
email>>body=corps // Affecte un corps à l'email
email>>attachments>>add(attach)// Affecte un fichier joint à l'email
email>>send() // Envoie l'email

Info("Message envoyé")

//MyFolder>>display()
NbItems=MyFolder>>items>>count //Compte le nombre d'emails dans le
folder sélectionné
SentMail=MyFolder>>items(NbItems) //Se place sur le dernier email du
folder (celui qu'on vient d'envoyer)
SentMail>>Move(MyNewFolder) //Déplace l'email sur lequel on est placé
dans le nouveau folder créé plus haut

Info("Traitement terminé")