Question Lister les mails dans outlook 2003

Plus d'informations
il y a 17 ans 2 mois #3776 par doudou
Bonjour, tout d'abord un grand bravo pour votre site.

Je viens de me mettre à powershell pour des raisons professionnelles.
J'ai besoin de rechercher dans la \"boîte aux lettres\" et non la \"boîte de réception\" des mails en fonction de leurs sujet. Voici quelques lignes que j'ai récupéré sur un autre forum :

[code:1]
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace(\"MAPI\"«»);
$inbox = $ns.GetDefaultFolder(6);

foreach($msg in $inbox.items)
{
if ($msg.subject -contains \"test\"«»)
{
$msg.subject;
}
};
[/code:1]

l'inconvénient de ce bout de code c'est qu'il ne me permet pas de rechercher dans la boîte aux lettres toute entière. Quel index utiliser pour le GetDefaultFolder du coup?

Merci.<br><br>Message édité par: doudou, à: 20/01/09 16:29

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 2 mois #3780 par Laurent Dardenne
Salut,
essai avec la valeur PublicFoldersAllPublicFolders

FolderDeletedItems = $00000003;
FolderOutbox = $00000004;
FolderSentMail = $00000005;
FolderInbox = $00000006;
FolderCalendar = $00000009;
FolderContacts = $0000000A;
FolderJournal = $0000000B;
FolderNotes = $0000000C;
FolderTasks = $0000000D;
FolderDrafts = $00000010;
PublicFoldersAllPublicFolders = $00000012; //Office XP
FolderJunk = $00000017; //Office 2003
??//Office 2007

Sinon il faut peut être parcourir chaque folder à l'aide de la propirété Folders:
Renvoie la collection Folders qui représente tous les dossiers contenus dans le dossier ou l'espace de nom spécifié

Voir aussi le SDK
msdn.microsoft.com/en-us/library/bb147608.aspx
[edit]
Les valeurs des folders sous 2007 :
msdn.microsoft.com/en-us/library/bb208072.aspx

Message édité par: Laurent Dardenne, à: 20/01/09 17:08<br><br>Message édité par: Laurent Dardenne, à: 20/01/09 17:10

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 2 mois #3781 par doudou
Salut Laurent,
merci de ta réponse. J'ai essayé :

[code:1]
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace(\&quot;MAPI\&quot;«»);
$inbox = $ns.GetDefaultFolder(6);
$myNewFolder = $inbox.Folders(\&quot;Personnel\&quot;«»);
[/code:1]

mais cela ne marche pas. Voici le message d'erreur retourné :

L'appel de la méthode a échoué parce que [System.__ComObject] ne contient pas de méthode nommée « Folders »


D'ailleurs la méthode Folders est sensée me placer dans le sous-dossier qui se nomme \&quot;personnel\&quot; de mon inbox?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 17 ans 2 mois #3782 par Laurent Dardenne
doudou écrit:

D'ailleurs la méthode Folders est sensée me placer dans le sous-dossier qui se nomme \&quot;personnel\&quot; de mon inbox?

Oui mais en passant par les 'magasins' :
[code:1]
$outlook = new-object -com outlook.application;
#Les magasins
$outlook.Session.folders
#Les dossiers du magasin numéro 1 (Dossiers personnels)
$Folders=$outlook.Session.folders.Item(1).Folders
#Les noms des dossiers
$Folders|% {$_.Name}
[/code:1]
Bien évidement l'index devrait être retrouvé via une clause Where name=\&quot;...\&quot; et pas codé en dur.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.086 secondes
Propulsé par Kunena