【问题标题】:unable to retrive inlines images from the mail body in Lotus Notes无法从 Lotus Notes 的邮件正文中检索内联图像
【发布时间】:2015-07-15 07:31:58
【问题描述】:

我无法在 Lotus Notes 中检索来自 Java 的内联图像/屏幕截图

document.getItemValueString('Body')

通过上述功能,我可以检索邮件正文中可用的文本而不是内联图像。

请提供您的建议,以便从邮件正文中检索内联图像

提前致谢。

LSP 乔蒂

【问题讨论】:

  • 您是否知道 Notes 电子邮件消息可以采用两种格式(Notes 富文本和 MIME)中的任何一种?您需要同时使用这两种格式吗?

标签: java lotus-notes lotus-domino lotusscript lotus


【解决方案1】:

首先:Body 是一个 NotesRichtextItem。您必须使用 NotesRichtextItem- 方法和属性来获取内联图像...如果有任何用于此目的的地方。

内联图像在 LotusScript 中不以任何方式处理。要获得它们,您需要:

  • 将文档导出为 XML
  • 在 XML 中查找表示内嵌图像的部分
  • 获取 Base64 编码值并将其转换为二进制格式,为此使用 Mime-Classes(技巧)。
  • 将数据写入文件

执行此操作涉及大量代码。我只是在这里发布代码的“关键”部分(未经测试,没有语法检查,仅作为起点):

编辑:对不起,我不是Java专家,只看到标签“lotusscript”,因此我的例子是LotusScript-Code(应该与java类似,我认为Base64-操作已经内置在java中,无需使用 Mime- Trick)

Dim strDxl as String
Dim strFoundBase64 as String
Dim exporter as NotesDXLExporter
Dim stream as NotesStream
Dim docConvert as NotesDocument
Dim mimeEntity as NotesMimeEntity
Set exporter = session.CreateDXLExporter
exporter.ConvertNotesBitmapsToGIF = True

strDxl = exporter.Export(document)

'- Search through strDxl and find everything that is in the following tags:
'- <gif></gif>, <gif originalformat='notesbitmap'></gif>, <jpeg></jpeg>, <png></png>
strFoundBase64 = ...'assign text between tags


'- use Mime class to convert to binary
Set docConvert = New NotesDocument( document.ParentDatabase )
Set mimeEntity = docConvert.CreateMIMEEntity
Call mimeEntity.SetContentFromBytes(strFoundBase64, "image/gif", ENC_BASE64)
'- Write result to file
Set stream = ses.CreateStream
Call stream.Open( "C:\Temp\image.gif", "binary")
Call mimeEntity.GetContentAsBytes(stream)
Call stream.Close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多