Autor Thema: COM (C# / VBA) - MIME Export  (Gelesen 5120 mal)

Offline InfoStudent86

  • Frischling
  • *
  • Beiträge: 3
COM (C# / VBA) - MIME Export
« am: 25.05.10 - 15:03:22 »
Hallo,

ich versuche seit Tagen den Inhalt eines Body Feldes Formatiert aus Lotus Notes auszulesen. Dabei geht es mir insbesondere darum, das der Text genauso wie z.B. in einer Mail aussieht.  (Tabellen, Inline-Attachments).

Datz habe ich versucht mit Hilfe der COM API ein NotesDokument in MIME zu Konvertieren. Was leider total gescheitert ist. Ich komme an die MIME Entity nicht heran. Sie ist NULL.


Villeicht habe ich auch einen falschen Ansatz gewählt. Ich bin für jeden Tipp Dankbar.


Code
  public class NotesRtfExport
    {
        const string cNotesConvertFormName  = "CONVERT_FORM"    ;
        const string cNotesConvertFieldName = "CONVERT_FIELD"   ;

        Domino.NotesSession  nSession   = null  ;
        Domino.NotesDocument nDoc       = null  ;

        public NotesRtfExport(Domino.NotesSession nSession, Domino.NotesDocument nDoc)
        {
            this.nSession   = nSession  ;
            this.nDoc       = nDoc      ;
        }

        public string GetRtfCode(string nItemName)
        {
            bool                            nCurrentMimeEntity    = false  ;   // zwischenspeichern der aktuellen MimeKonfig
            Domino.NotesRichTextItem        nRtfItem              = null   ;

            Domino.NotesDatabase            nConvertDb            = null   ;
            Domino.NotesDocument            nConvertDoc           = null   ;
            Domino.NotesRichTextItem        nConvertRtfItem       = null   ;
            Domino.NotesItem                nConvertMimeItem      = null   ;
            Domino.NotesMIMEEntity          nConvertMimeEntity    = null   ;
            string                          nConvertDocId         = ""     ;


            try
            {
                nRtfItem = (Domino.NotesRichTextItem)nDoc.GetFirstItem(nItemName);

                if (nRtfItem != null)
                {
                    nCurrentMimeEntity = nSession.ConvertMime;
                    nSession.ConvertMime = true;

                    nConvertDb = nSession.GetDatabase(@"xxxxxxxxxxxx", @"mail\administ.nsf", true);

                    nConvertDoc = nConvertDb.CreateDocument();
                    nConvertDoc.ReplaceItemValue("Form", cNotesConvertFormName);
                    nConvertRtfItem = nConvertDoc.CreateRichTextItem(cNotesConvertFieldName);
                    nConvertRtfItem.AppendRTItem(nRtfItem);
                    nConvertDoc.Save(true, false, true);
                    nConvertDocId = nConvertDoc.UniversalID;

                    nConvertDoc = null;

                    nSession.ConvertMime = false;
                    nConvertDoc = nConvertDb.GetDocumentByUNID(nConvertDocId);

                    if (nConvertDoc != null)
                    {
                        nConvertMimeItem = nConvertDoc.GetFirstItem(cNotesConvertFieldName);
                        nConvertMimeEntity = nConvertMimeItem.GetMIMEEntity();  // ist NULL und ich kann nicht weiterarbeiten :-(
                    }

                }
            }
            catch
            {
            }
            
            return ""; 
        }
    }


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz