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
相关推荐
6. **实际应用**:转换后的HTML可以用于Web页面展示、邮件发送、数据导入等场景。例如,可以将其存储在Web服务器的数据库中,或者作为电子邮件的内容发送出去。 在提供的文件"RT2HTML.nsf"中,很可能包含了实现上述...
首先,需要了解的是,Lotus Notes的公共邮箱可以被多个用户共享,用于发送邮件时,实际上是从Lotus Notes服务器的公共邮箱账户中发起邮件。在C#中,我们通常需要借助COM(Component Object Model)技术来操作Lotus ...
通过使用“javamail-1.4.5”这个组件包,开发者可以快速地在Java项目中构建邮件功能,无论是简单的文本邮件还是复杂的HTML邮件,甚至包含附件和多个部分的MIME邮件,都能轻松应对。同时,这个版本还可能包含了针对...
这涵盖了MIME、附件、HTML邮件等内容。 这些源程序为学习者提供了丰富的实践素材,涵盖了网络编程、GUI编程、数据库交互、多线程和邮件服务等多个Java核心领域。通过分析和运行这些代码,不仅可以提升编程技能,还...
通过这些API,开发者可以轻松地实现邮件的发送、接收、搜索、删除等功能,还可以处理附件、HTML邮件和MIME格式。同时,JavaMail还提供了对垃圾邮件过滤、国际化和多线程处理的支持。 在实际开发中,JavaMail通常与...
可能还会涉及到MIME多部分消息(MimeMultipart)用于添加附件或者HTML内容。 6. **简单的聊天室应用程序**: 这可能是一个基于TCP或UDP的多用户聊天室应用。开发者需要实现客户端-服务器架构,使用Socket编程来...
RFC2047多用途网际邮件扩充协议(MIME)(多用途Internet邮件扩展)第三部分:信息标题扩展用于非ASCII文本 RFC2048多用途Internet邮件扩展(多用途网际邮件扩充协议(MIME))第四部分:注册步骤 RFC2049多用途Internet邮件...
特别地, Lotus Notes邮件对象和Word 2000的RTF文件可能因为模板文件链接而成为恶意代码的载体。 系统漏洞的利用是恶意代码得以运行的另一个关键途径。例如, Lotus Notes、Word 2000、Flash以及IE浏览器等都曾有过...
Notes Regarding Cascading Operations 11. Zend_Debug 11.1. 输出变量的值 (Dumping Variables) 12. Zend_Exception 12.1. 使用“异常” 13. Zend_Feed 13.1. 介绍 13.2. 导入Feeds 13.2.1. 定制 feeds ...
- **Whining Cron Job**:定时任务,定期检查未解决的问题并发送提醒邮件。 - **Serving Alternate Formats with the right MIME type**:确保浏览器正确地解释不同的文件格式。 - **多数据库配置**:在单个Bugzilla...
- 设置正确的MIME类型。 6. **Oracle安装**: - 安装Oracle数据库驱动程序。 - 配置MapServer连接Oracle数据库的方法。 #### 五、Mapfile详解 1. **CLASS**: - 用于定义图层中的类别。 - 每个类别可以有多...
EML:Microsoft Outlook Express邮件消息(MIME RTC822)文件 EXE:可执行文件(程序) F FAV:Microsoft Outlook导航条 FAX:传真类型图像 FCD:虚拟CD-ROM FDF:Adobe Acrobat表单文档文件 FLA:Macromedia...