2010-11-24 17 views
5

Comment puis-je obtenir tous les documents Lotus Notes (par exemple mails et leur contenu) à partir d'un Lotus Notes boîte de réception d'un NSF Fichiers avec C# et l'utilisation de Interop .domino.dll?Lire les documents Lotus Notes et articles de fichier NSF avec C#

Je veux utiliser l'extrait suivant:

Domino.NotesSession m_session = null; 

... 

this.m_session = new Domino.NotesSession(); 
this.m_session.Initialize(""); 

Domino.NotesDatabase db = null; 
this.m_session.GetDatabase("", "C:\test.nsf", false); 

Domino.NotesDocumentCollection col = db.AllDocuments; 

for (int i = 0; i < col.Count; ++i) 
{ 
     Domino.NotesDocument doc = col.GetNthDocument(i); 

     ... 
} 

Comment puis-je accéder aux éléments de chaque document? Par exemple, je veux sujet, qui, date, heure, ...

Comment puis-je parcourir tous les éléments d'un document?

Comment puis-je extraire des pièces jointes?

Le pilote ODBC NotesSQL est-il une bonne alternative à l'API COM?

+0

Jusqu'ici, qu'avez-vous essayé? –

Répondre

5

Cela devrait fonctionner. La méthode GetItemValue dans Lotusscript renvoie un tableau de valeurs, mais vous aurez généralement besoin de la valeur au premier index. Je ne suis pas sûr que cela fonctionne de la même manière avec COM, mais le débogueur peut vous aider à comprendre cela.

De même, si vous traitez beaucoup de documents, il est beaucoup plus rapide d'itérer en utilisant les méthodes GetFirstDocument/GetNextDocument que d'utiliser la méthode GetNthDocument.

Domino.NotesDocument doc = col.GetFirstDocument(doc); 
while (doc != null) { 

    string subject = doc.GetItemValue("subject")[0]; 
    string who = doc.GetItemValue("sendto")[0]; 

    Domino.NotesDocument doc = col.GetNextDocument(doc); 
} 
+0

Pourquoi les brouillons de mémos ne sont-ils pas lus? – Elmex