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
分享到:
相关推荐
lotus domino 发送html邮件
在Lotus Domino(也称DOMINO)服务器环境中,邮件的传输和存储经常涉及到不同格式间的转换,主要包括Notes格式和MIME格式。这两种格式各有特点,Notes格式是Lotus Domino内部使用的,而MIME格式则是互联网标准,适用...
配置Domino服务器发送、接收Internet邮件 Domino邮件服务器要能够发送和接收外部邮件,必须拥有一个外部IP地址(最好固定)和指向该IP的域名,并能保证该服务器接在Internet上。
Java 访问 Domino 的编程指南是指在 Java 语言中如何访问和操作 Domino 对象的编程指南。Domino 是一种商业软件,它提供了强大的信息管理和collaboration 功能。Java 是一种广泛使用的编程语言,经常用来开发各种...
Lotus Domino Web是一种集成了邮件服务、文档管理、数据库应用和Web发布功能于一体的企业级平台,它在20世纪末至21世纪初被广泛应用于企业内部网(Intranet)和互联网(Internet)应用开发中。 ### Lotus Domino ...
正确完成这些步骤,不仅能确保Domino服务器能向公网地址发送邮件,还能解决中文用户名在邮件客户端中的显示问题。这是一项需要细心和专业知识的工作,但一旦设置得当,Domino服务器将成为企业内部和外部沟通的强大...
总之,Domino C API提供了强大的能力,让开发者能以编程方式控制邮件发送,这对于自动化工作流、通知系统和集成其他应用程序非常有用。通过理解和熟练运用这些API,你可以构建高效且灵活的邮件解决方案。
- **Domino邮件文件**: 每个邮件用户在服务器上有一个邮件文件,用于存储邮件数据。 - **邮件客户机**: 用户通过邮件客户端(如Lotus Notes、POP3或IMAP客户端)创建和读取邮件。 **知识点2:邮件处理支持的标准...
因此,在R6版本中,限制特定用户向Domino目录中的群组发送邮件成为一项重要的配置需求。 #### 二、操作步骤详解 为了实现这一目标,可以通过以下步骤进行配置: 1. **启动Domino Administrator程序**:首先,打开...
在Java编程中,连接到IBM Lotus Domino(也称为Lotes)邮件服务器并读取邮件内容和附件是一项常见的任务。Lotus Domino是IBM提供的一款企业级的协作软件,它集成了电子邮件、日历、任务和文档管理等功能。这篇教程将...
在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用以及游戏开发等领域。本项目涉及的是利用C#与IBM Domino(Lotus Notes的一种服务器版本)进行交互,实现邮件发送功能。Domino服务器是...
在IT行业中,Lotus Domino是一款强大的协同软件平台,常用于企业级应用开发。本主题聚焦于两个关键方面:Domino接口编程和Domino程序优化,旨在提升开发效率和系统性能。 【Domino接口编程】 1. **API介绍**:...
在企业级应用开发过程中,经常需要通过Java来调用Domino服务器发送邮件。为了确保邮件能够顺利发送,需要进行一系列配置及调试工作,包括开启Domino服务器的DIIOP服务、验证网络连接性、配置DIIOP设置以及正确建立...
2. **Web编程**:在Lotus Domino中,Web编程主要指通过HTTP协议与Domino服务器进行通信,使非Notes客户端(如Web浏览器)能够访问和交互Domino应用。这通常涉及到HTML、CSS和JavaScript等Web标准技术。 3. **服务器...
Lotus C++ API开发包(支持lotus domino 6以上) 2/2 第一部分:http://download.csdn.net/source/1968695
DLL的功能主要是获取Domino系统中发送的邮件信息,可能是为了进行日志记录、数据分析、自动化处理或者其他定制化的业务需求。通过这种机制,开发人员可以实现在邮件发送前或发送后执行自定义的逻辑操作。 **标签...
- **配置五**:最后,在“配置文档-MIME-高级-高级外出选项-Internet邮件服务器在消息中发送Notes私有项”中,确保这一选项处于禁用状态,防止将非Internet标准的Notes邮件项目(如地址)保留在邮件中,从而避免可能...
在使用Lotus Domino发送邮件时,为了保证系统的稳定性和效率,通常会设置一些限制,包括对单个邮件文档大小的限制。这个限制主要是为了避免用户发送过大的附件,导致邮件服务器负担过重,甚至可能影响其他用户的邮件...
【Lotus Domino/Notes R8/R85 基础】是IBM Software Group推出的一款集成了邮件服务、协作工具和应用程序开发平台的产品。这个版本带来了许多改进和新特性,旨在提高用户的工作效率和安全性。 首先,Domino作为整体...