Notes邮件显然是支持HTML/MIME的了。在Notes客户端RTF域里面写的邮件无论是文本、图片还是附件都能直接转为MIME发送出去,在Web下写在HTML编辑器里面的东西也能转成MIME的发出去。如何在程序里面发送HTML/MIME邮件呢?其实也很简单,就是用到 Domino的两个类:NotesMimeEntity和NotesMimeHeader就足够了。
1、发送HTML文本含图片
Sub SendMIMEMail
On Error Goto ErrorHandler
sImage$ = “seal.jpg”
sHtml$ = {
<table border=”0″ cellpadding=”0″ cellspacing=”0″ width=”700″ align=”center”>
<tr>
<td><img src=”cid:} + sImage$ + {“></td>
</tr>
</table>
}
session.ConvertMIME = False
Dim doc As NotesDocument
Set doc = curDb.CreateDocument
Call doc.ReplaceItemValue(“Form”, “Memo”)
Call doc.ReplaceItemValue(“Principal”, “xxx@163.com“)
Dim body As NotesMimeEntity
Dim header As NotesMimeHeader
Set body = doc.CreateMIMEEntity(“body”)
Set header = body.CreateHeader(“Content-Type”)
Call header.SetHeaderVal(“multipart/related”)
Set header = body.CreateHeader(“Subject”)
Call header.SetHeaderVal(“MIME TEST!!!!”)
Set header = body.CreateHeader(“To”)
Call header.SetHeaderVal(“xxx@gmail.com“)
Dim stream As NotesStream
Set stream = session.CreateStream
Dim child As NotesMimeEntity
Set child = body.CreateChildEntity
Call stream.WriteText(sHtml$)
Call child.SetContentFromText(stream, “text/html;charset=gb2312″, ENC_NONE)
Call stream.Close()
Set child = body.CreateChildEntity
Set header = child.CreateHeader(“Content-ID”)
Call header.SetHeaderVal(sImage$)
If stream.Open(“C:\” + sImage$) Then
If stream.Bytes <> 0 Then
Call child.SetContentFromBytes(stream, {image/jpeg; name=”} + sImage$ + {“}, ENC_IDENTITY_BINARY)
End If
End If
Call stream.Close()
session.ConvertMIME = True
Call doc.Send(False)
Exit Sub
ErrorHandler: Call curLog.Debug(1)
End Sub
在HTML插入图片的关键是这一句:<img src=”cid:seal.jpg”>
其中cid:seal.jpg就是后面创建的一个NotesMimeEntity,注意这个NotesMimeEntity加了一个名字是Content-ID值为seal.jpg的NotesMimeHeader。如此这个图片就能在邮件里面显示了。
2、发送附件
在Notes编程里面发送附件的方式至少有两种,一种是通过NotesRichTextItem的EmbedObject方法将附件扔到$File 域中,然后发送文档;另一种还是通过上面说得NotesMimeEntity和NotesMimeHeader的方式来发送。这里只说后面一种:
Sub SendMIMEMail
On Error Goto ErrorHandler
sAttach$ = “struts.txt”
session.ConvertMIME = False
Dim doc As NotesDocument
Set doc = curDb.CreateDocument
Call doc.ReplaceItemValue(“Form”, “Memo”)
Call doc.ReplaceItemValue(“Principal”, “xxx@163.com”)
Dim body As NotesMimeEntity
Dim header As NotesMimeHeader
Set body = doc.CreateMIMEEntity(“body”)
Set header = body.CreateHeader(“Content-Type”)
Call header.SetHeaderVal(“multipart/related”)
Set header = body.CreateHeader(“Subject”)
Call header.SetHeaderVal(“MIME TEST!!!!”)
Set header = body.CreateHeader(“To”)
Call header.SetHeaderVal(“xxx@gmail.com“)
Dim stream As NotesStream
Set stream = session.CreateStream
Dim child As NotesMimeEntity
Set child = body.CreateChildEntity
Call stream.WriteText(sHtml$)
Call child.SetContentFromText(stream, “text/html;charset=gb2312″, ENC_NONE)
Call stream.Close()
Set child = body.CreateChildEntity
Set header = child.CreateHeader(“Content-Type”)
Call header.SetHeaderVal(“multipart/related”)
Set header = child.CreateHeader(“Content-Disposition”)
Call header.SetHeaderVal(“attachment; filename=” + sAttach$)
Set header = child.CreateHeader(“Content-ID”)
Call header.SetHeaderVal(sAttach$)
If stream.Open(“C:\” + sAttach$) Then
If stream.Bytes <> 0 Then
Call child.SetContentFromBytes(stream, “application/octet-stream” + {“}, ENC_IDENTITY_BINARY)
End If
End If
Call stream.Close()
session.ConvertMIME = True
Call doc.Send(False)
Exit Sub
ErrorHandler: Call curLog.Debug(1)
End Sub
分享到:
相关推荐
配置Domino服务器发送、接收Internet邮件 Domino邮件服务器要能够发送和接收外部邮件,必须拥有一个外部IP地址(最好固定)和指向该IP的域名,并能保证该服务器接在Internet上。
Domino 通过它对 SMTP(简单邮件传输协议)、POP3(邮局协议版本 3)和 MIME(多用途 Internet 邮件扩展)的支持,提供基于标准的 Internet 消息处理。同时,Domino 还通过使用 Notes 路由协议 -- NRPC(Notes 远程...
Lotus Domino Web 高级编程8.pdf
lotus domino 发送html邮件
c api 实现以domino服务的方式自动发送邮件。
Domino邮件发送全攻略
Java访问Domino的编程指南.doc
Lotus C++ API开发包(支持lotus domino 6以上) 2/2 第一部分:http://download.csdn.net/source/1968695
Domino接口编程及Domino程序优化
在R6中如何限制用户给Domino目录中的群组发邮件
Lotus Domino Web编程 Lotus Domino Web编程
资源名称:Domino web开发与管理 中文PPT版内容简介:Domino web开发与管理 中文PPT版主要讲述的是Domino web开发与管理;Notes/Domino系统基于客户机/...资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
当一封邮件进行格式转换的时候(从Notes格式转换为MIME格式,或者从MIME格式转换为Notes格式),用户可以在日志文件log.nsf或主控台看到类似于以下地信息: Begin CD to MIME Conversion(Process: Router 这种信息...
11.2 为什么在Domino中使用小服务程序 281 11.3 启用小服务程序支持 282 11.4 编写小服务程序 283 11.4.1 简单的HTTP GET小服务程序: StupidServlet 283 11.4.2 简单的HTTP POST小服务程序: JDBCQueryServlet ...
删除domino所有用户的N天前的邮件记录,给服务器节省空间。 这是用在网上收集的代码,并且经过修改已经正常运行用在生产上。 可以设置在代理上,让代理每天在指定时间自动删除。
DominoWeb编程02
在Domino中使用黑名单站点防止垃圾邮件
DominoWeb编程-1