2012-05-15 6 views
3

Je suis en train d'écrire du code pour extraire des informations sur le contenu des fichiers PST tels que le nombre total de messages, la liste des sous-dossiers, le nombre de messages par dossier, le nom du sujet et la date d'envoi. chaque message.Traitement PST en utilisant Ruby

C'est un travail en cours et je dois me familiariser avec Ruby/Outlook/MAPI au fur et à mesure.

Je travaille dans les fenêtres avec l'extrait de code suivant pour mieux comprendre la façon dont je peux accéder au contenu PST:

#Create outlook instance 
outlook = WIN32OLE.new('Outlook.Application') 
#Create mapi control 
mapi = outlook.GetNameSpace('MAPI') 
outlook.Session.AddStore('C:/test.pst') 
#pst = mapi.Folders.Item('Personal Folders') 
#puts pst.Items.count 
#mapi.RemoveStore(pst) 

Même si je suis en mesure d'ajouter un fichier pst via le nom du fichier, afin de l'enlever j'ai besoin de savoir ce que le nom assigné au dossier dans des perspectives est. C'est bien Si je suis manuellement dans Outlook mais je souhaite que cela fonctionne de manière autonome.

Existe-t-il un moyen pour extraire et assigner le pst 'name' à une variable après le chargement afin de contourner ce problème ou existe-t-il un autre moyen de décharger le ou les fichiers pst que je ne connais pas?

+0

Je veux dire qu'il y a des douzaines de bonnes ressources, par exemple regardez ici: http://rubyonwindows.blogspot.de/2007/08/automating-outlook-with-ruby-inbox.html – zzeroo

Répondre

0

Essayez d'utiliser des méthodes de tableau

outlook.Session.AddStore('C:/test.pst') 
mapi.RemoveStore(mapi.Folders.Item.last) 

L'autre option itérer les mapi.Folders avant de l'ajouter. Puis parcourez après et trouvez le nouveau nom "Item" qui est mappé, puis supprimez-le.