我编写了一些代码来使用MIME对象创建和发送新邮件。这有效,这里没有问题。
现在我需要添加现有文档的正文。 Body字段也是MIME。将此NotesMIMEEntity对象添加到邮件的正确方法是什么?我可以组合两个NotesMIMEntity对象吗?我可以将一个物体附加到另一个物体上吗?
感谢您的帮助!
更新
这就是我尝试过的。对象项包含来自其他文档的MIMEEntity。对象体是正在构建的新MIMEEntity。代码的结果是zip,nada ......
Set bodyChild= body.createChildEntity()
Set stream= session.Createstream()
Call item.Getcontentasbytes(stream)
Call bodyChild.Setcontentfrombytes(stream, {text/html;charset="iso-8859-1"}, ENC_NONE)
Call stream.Close()
答案 0 :(得分:2)
这里是将文本,图像和一些标题复制到目标MIME实体的代码。我希望其他人也可以使用它。谢谢大家!
* soft nofile 4096
* hard nofile 4096
答案 1 :(得分:1)
我只想评论 D.Bugger 解决方案,该解决方案很棒,而且没有问题。
我想补充一点,如果某些子实体是文件附件,则需要使用以下正弦值:
Call childTo.createHeader( mimeHeader.HeaderName ).Setheadervalandparams( mimeHeader.Getheadervalandparams() )
因为“ Content-Type ”和“ Content-Disposition ”标题中的“参数”包含有意义的信息,即文件附件文件名。
此外,您还应该在从子级获得的标题中至少添加另一个标题,即“ Content-Type ”。
否则,将复制文件附件子实体,但是它们将缺少文件名和类型,因此将无用。
完整的经过纠正的Do循环在这里:
Do Until childFrom Is Nothing
Set childTo= mimeTo.createChildEntity()
Set mimeHeader= childFrom.GetNthHeader("Content-Type")
If Not mimeHeader Is Nothing Then
Call childTo.createHeader( mimeHeader.HeaderName ).Setheadervalandparams( mimeHeader.Getheadervalandparams() )
End If
Set mimeHeader= childFrom.GetNthHeader("Content-Disposition")
If Not mimeHeader Is Nothing Then
Call childTo.createHeader( mimeHeader.HeaderName ).Setheadervalandparams( mimeHeader.Getheadervalandparams() )
End If
Set mimeHeader= childFrom.GetNthHeader("Content-ID")
If Not mimeHeader Is Nothing Then
Call childTo.createHeader( mimeHeader.HeaderName ).Setheaderval( mimeHeader.Getheaderval() )
End If
Call CopyMultipartMime(childFrom, childTo)
Set childFrom = childFrom.GetNextSibling
Loop
除此之外,感谢您的回答,如果我发表了回答,对不起,但显然我无法评论您的问题。