这不仅是一个XPage问题,也是一个Lotusscript问题。
如果你有一个存在的Body MIMEEntity字段,你可以在Lotuscript Code或Java Code中添加例如附件......你怎么能这样做? 我没有成功地调查更多时间
阅读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不同)
非常感谢你!
答案 0 :(得分:1)
mime实体包含一种类型的内容。因此,您不会向现有mime实体添加附件,而是创建兄弟或子实体。 每个实体包含一件事。因此,每个附件都需要一个实体。
希望澄清一下。
<强>更新强>:
我的回答是:您不要在MIME条目中混合内容类型。它有一种类型,所以没有点编辑mime条目,而是创建一个新的。编辑将是将内容(可以是text / plain或text / html)读入流中,在那里更新并将其写回。
如果要添加附件,则需要添加另一个MIME部分。
答案 1 :(得分:0)
我真的不熟悉SSJS(我在前几次谷歌点击中找不到语法参考),但这看起来不对:
var doc:NotesDocument=document1.getDocument().getMIMEEntity("Body");
您正在调用getMIMEEntity
,它返回NotesMIMEEntity
类型,但您将其分配给名为var
的{{1}},我假设{{1}我说doc
的类型为:NotesDocument
。因此,当你开始致电doc
时,我真的无法猜测会发生什么,但我怀疑它会有什么好处。