java - 如何修改现有的 NotesMIMEEntity 字段

标签 java xpages lotus-notes lotusscript xpages-ssjs

这不仅是一个 XPage 问题,也是一个 Lotusscript 问题。

如果您有一个现有的 Body MIMEEntity 字段,并且您想在 Lotuscript 代码或 Java 代码中添加附件……您该怎么做? 我调查了更多时间但没有成功

阅读my previus question to understand the code所以你可以看到,例如我需要附加另一个笔记文档中的附件(或者文件系统是相同的)

我重新插入示例代码(我需要将另一个 RT MIME 字段的附件添加到另一个 RT MIME 字段名称 Body 中,但在此代码之后... 的输出正文已损坏,仅显示新附件..并丢失原始内容..有人知道为什么吗?):

session.setConvertMime(false);
var doc:NotesDocument=document1.getDocument(true);
var mimeRoot:NotesMIMEEntity=doc.getMIMEEntity("Body");
var docAttach:NotesDocument=database.getDocumentByUNID('XXXXXXXUNID'); //doc where are the attachmetns files MIME or RICHTEXT


var XSPReply=wrapDocument(docAttach);  //function in Xsnippets from Opentntf.org
var listattachs=XSPReply.getAttachmentList("Body");

for (var i=0; i<listattachs.length; i++) {
   var is=null;
   var att = listattachs[i];
   var persistentName = att.getPersistentName()==null?att.getName():att.getPersistentName();
   var cid = att.getCID();
   var eo:NotesEmbeddedObject = docAttach.getAttachment(persistentName);
   if (null != eo) {
      var child:NotesMIMEEntity=mimeRoot.createChildEntity(); //create child of original mail
      var emailHeader:NotesMIMEHeader = child.createHeader("Content-Disposition");
      emailHeader.setHeaderVal("attachment; filename=\"" + persistentName+ "\"");
      emailHeader = child.createHeader("Content-ID");
      emailHeader.setHeaderVal("<" + cid + ">");
      var is = new java.io.BufferedInputStream(eo.getInputStream());
      var stream:NotesStream = session.createStream();
      stream.setContents(is);
      child.setContentFromBytes(stream, att.getType(),NotesMIMEEntity.ENC_IDENTITY_BINARY);
    }
}

doc.closeMIMEEntities(true,"Body")
doc.save()
session.setConvertMime(true);

看起来很简单...但我不知道如何正确编辑存在我的 NotesMimeEntity (这与创建新的 NotesMimeEntity 不同)

非常感谢你!

最佳答案

mime 实体包含一种类型的内容。因此,您不会向现有 mime 实体添加附件,而是创建同级或子实体。 每个实体都包含一件事。因此,每个附件都需要一个实体。

希望能够澄清这一点。

更新:
我的答案是:您不能在 MIME 条目中混合内容类型。它只有一种类型,因此没有必要编辑 mime 条目,而是创建一个新条目。编辑是将内容(将是文本/纯文本或文本/html)读取到流中,在那里更新并将其写回。 如果您想添加附件,则需要添加另一个 MIME 部分。

关于java - 如何修改现有的 NotesMIMEEntity 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460435/

相关文章:

full-text-search - FTsearch 在 xpage 的 View 控件中无法正常工作

javascript - XPages - 更改放置栏按钮的背景颜色

deployment - IBM 笔记 : Eclipse Plugin deployment to framework directory

java - Grails 3.2 文件上传错误 (FileNotFoundException )

java - 如何将 java 对象序列化为 javax.JSON 或从 javax.JSON 反序列化

xpages - 如何在不同笔记数据库的 xpage 之间传递值?

lotus-notes - 如何在 Lotus Domino Designer 中导出应用程序的组件?

java - Spring启动示例: Can't access reSTLet from browser

java - 在 java11 上播种后,SHA1PRNG SecureRandom 行为有所不同

java - xpages:引用来自不同数据库/应用程序的 View