`
liuyp2003
  • 浏览: 56472 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

在DOMINO中编程发送HTML/MIME邮件

阅读更多
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
分享到:
评论
2 楼 sky3010 2012-06-02  
你好,我想用C#实现发送图片的,但是在这里
“If stream.Open(“C:\” + sAttach$) Then 
If stream.Bytes <> 0 Then ”
C#是stream.Open(filePath,"binary")
一直返回false
可以给点建议吗?
1 楼 sky3010 2012-05-31  
找了好久这样的资料,终于找到了,多谢这位大哥了

相关推荐

    lotus domino 发送html邮件

    lotus domino 发送html邮件

    解决DOMINO(LOTUS)中Begin CD to MIME Conversion和End CD to MIME Conversion的刷新问题

    在Lotus Domino(也称DOMINO)服务器环境中,邮件的传输和存储经常涉及到不同格式间的转换,主要包括Notes格式和MIME格式。这两种格式各有特点,Notes格式是Lotus Domino内部使用的,而MIME格式则是互联网标准,适用...

    配置Domino发送接收Internet邮件.doc

    配置Domino服务器发送、接收Internet邮件 Domino邮件服务器要能够发送和接收外部邮件,必须拥有一个外部IP地址(最好固定)和指向该IP的域名,并能保证该服务器接在Internet上。

    Java访问Domino的编程指南.doc

    Java 访问 Domino 的编程指南是指在 Java 语言中如何访问和操作 Domino 对象的编程指南。Domino 是一种商业软件,它提供了强大的信息管理和collaboration 功能。Java 是一种广泛使用的编程语言,经常用来开发各种...

    Lotus Domino Web 高级编程8.pdf

    Lotus Domino Web是一种集成了邮件服务、文档管理、数据库应用和Web发布功能于一体的企业级平台,它在20世纪末至21世纪初被广泛应用于企业内部网(Intranet)和互联网(Internet)应用开发中。 ### Lotus Domino ...

    Domino邮件发送全攻略

    正确完成这些步骤,不仅能确保Domino服务器能向公网地址发送邮件,还能解决中文用户名在邮件客户端中的显示问题。这是一项需要细心和专业知识的工作,但一旦设置得当,Domino服务器将成为企业内部和外部沟通的强大...

    domino c api 自动发送邮件

    总之,Domino C API提供了强大的能力,让开发者能以编程方式控制邮件发送,这对于自动化工作流、通知系统和集成其他应用程序非常有用。通过理解和熟练运用这些API,你可以构建高效且灵活的邮件解决方案。

    Domino的Java编程指南

    - **Domino邮件文件**: 每个邮件用户在服务器上有一个邮件文件,用于存储邮件数据。 - **邮件客户机**: 用户通过邮件客户端(如Lotus Notes、POP3或IMAP客户端)创建和读取邮件。 **知识点2:邮件处理支持的标准...

    在R6中如何限制用户给Domino目录中的群组发邮件

    因此,在R6版本中,限制特定用户向Domino目录中的群组发送邮件成为一项重要的配置需求。 #### 二、操作步骤详解 为了实现这一目标,可以通过以下步骤进行配置: 1. **启动Domino Administrator程序**:首先,打开...

    java连接Lotes邮件服务器(Domino) 读取邮件内容附件完整实例

    在Java编程中,连接到IBM Lotus Domino(也称为Lotes)邮件服务器并读取邮件内容和附件是一项常见的任务。Lotus Domino是IBM提供的一款企业级的协作软件,它集成了电子邮件、日历、任务和文档管理等功能。这篇教程将...

    c# domino 发送邮件

    在IT行业中,C#是一种广泛使用的编程语言,尤其在开发Windows应用程序、Web应用以及游戏开发等领域。本项目涉及的是利用C#与IBM Domino(Lotus Notes的一种服务器版本)进行交互,实现邮件发送功能。Domino服务器是...

    Domino接口编程及Domino程序优化

    在IT行业中,Lotus Domino是一款强大的协同软件平台,常用于企业级应用开发。本主题聚焦于两个关键方面:Domino接口编程和Domino程序优化,旨在提升开发效率和系统性能。 【Domino接口编程】 1. **API介绍**:...

    java调试domino邮件常见问题

    在企业级应用开发过程中,经常需要通过Java来调用Domino服务器发送邮件。为了确保邮件能够顺利发送,需要进行一系列配置及调试工作,包括开启Domino服务器的DIIOP服务、验证网络连接性、配置DIIOP设置以及正确建立...

    Lotus Domino Web编程

    2. **Web编程**:在Lotus Domino中,Web编程主要指通过HTTP协议与Domino服务器进行通信,使非Notes客户端(如Web浏览器)能够访问和交互Domino应用。这通常涉及到HTML、CSS和JavaScript等Web标准技术。 3. **服务器...

    Lotus C++ API开发包(支持lotus domino 6以上) 2/2

    Lotus C++ API开发包(支持lotus domino 6以上) 2/2 第一部分:http://download.csdn.net/source/1968695

    domino c api 截获邮件

    DLL的功能主要是获取Domino系统中发送的邮件信息,可能是为了进行日志记录、数据分析、自动化处理或者其他定制化的业务需求。通过这种机制,开发人员可以实现在邮件发送前或发送后执行自定义的逻辑操作。 **标签...

    Domino邮件路由配置建议-2013经验总结

    - **配置五**:最后,在“配置文档-MIME-高级-高级外出选项-Internet邮件服务器在消息中发送Notes私有项”中,确保这一选项处于禁用状态,防止将非Internet标准的Notes邮件项目(如地址)保留在邮件中,从而避免可能...

    lotus domino限制文档发邮件大小

    在使用Lotus Domino发送邮件时,为了保证系统的稳定性和效率,通常会设置一些限制,包括对单个邮件文档大小的限制。这个限制主要是为了避免用户发送过大的附件,导致邮件服务器负担过重,甚至可能影响其他用户的邮件...

    Lotus Domino/Notes R8/R85 基础

    【Lotus Domino/Notes R8/R85 基础】是IBM Software Group推出的一款集成了邮件服务、协作工具和应用程序开发平台的产品。这个版本带来了许多改进和新特性,旨在提高用户的工作效率和安全性。 首先,Domino作为整体...

Global site tag (gtag.js) - Google Analytics