- 10
- 0
- 约7.48千字
- 约 5页
- 2017-07-09 发布于河南
- 举报
[JavaMail]9 详解Multipart和BodyPart
简介
Message表示一个邮件,messgaes.getContent()返回一个Multipart对象。一个Multipart对象包含一个或多个BodyPart对象,来组成邮件的正文部分(包括附件)。
B、Multipart
javax.mail.Multipart
public abstract class Multipart
Multipart是一个容器它转载多个body Part(正文、附件或内嵌资源)。Part的getContent()方法就返回一个Multipart对象。
javax.mail.internet.MimeMultipart
public class MimeMultipart extends Multipart
MimeMultipart是Multipart的实现类,默认类别是mixed。其他multipart子类型如:related和alternative可以通过new MimeMultipart(“alternative”);来实现。
B.0、Multipart的content-type
总体来说,MIME消息由消息头和消息体两大部分组成。现在我们关注的是MIME邮件,因此在以下的讨论中姑且称“消息”为“邮件”。
邮件头包含了发件人、收件人、主题、时间、MIME版本、邮件内容的类型等重要信息。每条信息称为一个域,由域名后加“: ”和信息内容构成,可以是一行,较长的也可以占用多行。域的首行必须“顶头”写,即左边不能有空白字符(空格和制表符);续行则必须以空白字符打头,且第一个空白字符不是信息本身固有的,解码时要过滤掉。
邮件体包含邮件的内容,它的类型由邮件头的“Content-Type”域指出。常见的简单类型有text/plain(纯文本)和text/html(超文本)。有时也会出现的multipart类型,是MIME邮件的精髓。邮件体被分为多个段,每个段又包含段头和段体两部分,这两部分之间也以空行分隔。常见的multipart类型有三种:multipart/mixed, multipart/related和multipart/alternative。
multipart/mixed:附件。
multipart/related:内嵌资源。
multipart/alternative:纯文本与超文本共存。
可以看出,如果在邮件中要添加附件,必须定义multipart/mixed段;如果存在内嵌资源,至少要定义multipart/related段;如果纯文本与超文本共存,至少要定义multipart/alternative段。什么是“至少”?举个例子说,如果只有纯文本与超文本正文,那么在邮件头中将类型扩大化,定义为multipart/related,甚至multipart/mixed,都是允许的。
multipart诸类型的共同特征是,在段头指定“boundary”参数字符串,段体内的每个子段以此串定界。所有的子段都以--=_”boundary行”开始,父段则以--=_”boundary行” --结束。段与段之间也以空行分隔。
前文,在邮件体是multipart类型的情况下,邮件体的开始部分(第一个--=_”boundary行”之前)可以有一些附加的文本行,相当于注释,解码时应忽略。段间也可以有一些附加的文本行,不会显示出来,如果有兴趣,不妨验证一下。
B.1、javax.mail.Multipart
属性
protected String contentType
This field specifies the content-type of this multipart object.
返回Multipart的content-type类型。类型包括alternative, mixed, related, parallel, signed等。
protected Part parent
The Part containing this Multipart, if known.
父Part,一般是message。
protected Vector parts
Vector of BodyPart objects.
方法
1.操作BodyPart
void addBodyPart(BodyPart part)
Adds a Part to the multipart.
void addBodyPart(BodyPart part, int index)
Adds a BodyPart at position index.
BodyPart getBodyPart(int index)
Get the specified Part.
boolean removeBodyPart(Bo
您可能关注的文档
最近下载
- 2026届新高考物理冲刺复习:电磁感应中的双杆专题.pptx VIP
- 2025成都中考数学真题及答案解析.docx VIP
- 渔业作业安全手册.pptx
- 广西钦州市2025-2026高二上学期期末教学质量检测化学试卷.pdf VIP
- 风险分级评价方法(LEC LS)课件.pptx VIP
- TSLEA 1011.2-2024 实验室设计与建设技术规范 第2部分:化学实验室.pdf
- 2025年留置看护警务辅助人员招聘综合基础知识题库.docx
- 骨科护理MDT查房.pptx VIP
- 城乡内部空间结构(第1课时)示范公开课教学课件【鲁教版高中地理必修第二册(新课标)】.pptx VIP
- 2025年成都市中考数学试题卷(含标准答案及详解).pdf
原创力文档

文档评论(0)