Question
Lister les mails dans outlook 2003
- doudou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 2
- Remerciements reçus 0
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
essai avec la valeur PublicFoldersAllPublicFolders
Sinon il faut peut être parcourir chaque folder à l'aide de la propirété Folders: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
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.
- doudou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 2
- Remerciements reçus 0
merci de ta réponse. J'ai essayé :
[code:1]
$outlook = new-object -com outlook.application;
$ns = $outlook.GetNameSpace(\"MAPI\"«»);
$inbox = $ns.GetDefaultFolder(6);
$myNewFolder = $inbox.Folders(\"Personnel\"«»);
[/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 \"personnel\" de mon inbox?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Oui mais en passant par les 'magasins' :D'ailleurs la méthode Folders est sensée me placer dans le sous-dossier qui se nomme \"personnel\" de mon inbox?
[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=\"...\" et pas codé en dur.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Lister les mails dans outlook 2003