3 votes

Traitement des PST à l'aide de Ruby

Je suis en train d'écrire un code pour extraire des informations sur le contenu des fichiers PST telles que le nombre total de messages, la liste des sous-dossiers, le nombre de messages par dossier, le nom de l'objet de l'email et la date d'envoi/de réception de chaque message.

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

Je travaille sous Windows avec l'extrait de code suivant pour comprendre comment je peux accéder au contenu du 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)

Bien que je sois capable d'ajouter un fichier pst via le nom du fichier, pour le supprimer, j'ai besoin de savoir quel est le nom attribué au fichier dans Outlook. Cela ne pose pas de problème si je suis manuellement dans Outlook, mais j'aimerais que cela fonctionne de manière autonome.

Existe-t-il un moyen d'extraire et d'affecter le "nom" du pst à une variable après le chargement afin de contourner ce problème ou existe-t-il un autre moyen de décharger le(s) fichier(s) pst dont je n'ai pas connaissance ?

0voto

shadowbq Points 170

Essayez d'utiliser les méthodes de tableau

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

L'autre option est d'itérer à travers les mapi.Folders avant de l'ajouter. Ensuite, il faut itérer après et trouver le nouveau nom de l'"élément" qui est mappé, puis le supprimer.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X