2016-08-04 89 views
0

我正在尝试从NSF文件读取电子邮件。我想从电子邮件正文中获取内嵌图像。但我作为一个文本只得到价值从Lotus Notes文档中获取HTML正文内容

这是我的示例代码。

  _lotesNotesSession.ConvertMime = false; 

      nDB  = _lotesNotesSession.GetDatabase(null, path, false); 

      nView = nDB.GetView("$Inbox"); 

      nDoc  = nView.GetFirstDocument(); 

      NotesMIMEEntity nMime = nDoc.GetMIMEEntity("Body"); 

如何获取电子邮件的HTML正文?

问候; Mayuresh。

回答

0

首先,一个文档可以有多个主体字段,你可能没有得到与其中的图像领域。另外,图像可以被存储为MIME(文本)。如果不是,您需要在文档的其他地方查找图像并使用这些图像。它们可以作为嵌入对象或$ File字段。

1

您需要阅读NotesMIMEEntity class的文档。一个MIME实体可能有孩子和兄弟实体,其中包括图像。您将不得不编写检查ContentType和ContentSubType属性的代码,以确定它是否具有子对象(即multipart),然后使用getFirstChildEntity,getNextSibling和getNextEntity方法遍历实体树以查找图像,方法是检查ContentType和ContentSubType为每个实体。然后,您将需要检查包含图像的实体的Encoding属性,以确定图像如何表示,然后使用contentAsText属性获取编码的内容并编写(或查找)代码以将文本解码为二进制图像。

+0

对于一些邮件,我没有得到NotesMimeEntity nMime = nDoc.GetMIMEEntity( “身体”);返回null – Mayuresh

+0

Notes和Domino处理两种邮件格式:Notes富文本和MIME。一个简单的测试方法是检查hasItem(“$ NoteHasNativeMIME”)。如果消息是富文本,则不能使用MIME类,但可以使用一些技术将消息转换为MIME,然后访问该消息。有关更多信息,请参阅StackOverflow上的此早期问题: http://stackoverflow.com/questions/1880511/how-to-export-rich-text-fields-as-html-from-notes-with-lotusscript –