JavaMailAPI创建邮件实战:使用MimeMessage与MimeBodyPart

0 下载量 184 浏览量 更新于2024-09-04 收藏 305KB PDF 举报
"这篇教程是关于JavaMail入门的,特别是如何创建邮件。它指出JavaMailAPI中的`MimeMessage`类用于表示整个邮件,而`MimeBodyPart`类则用于表示邮件中的单个MIME消息。对于更复杂的邮件,如包含内嵌资源或附件,会用到`MimeMultipart`类来组合多个MIME消息。教程提到了这三者之间的关系,并简要展示了使用`MimeMessage`创建简单文本邮件的基本步骤。" 在JavaMail编程中,`MimeMessage`是用于构建电子邮件的核心类,它是`Message`类的实现,允许我们设置邮件的所有必要属性,如发件人、收件人、主题和正文。`MimeMessage`不仅支持纯文本邮件,还支持多部分MIME类型,允许包含HTML内容、附件或其他复杂格式的数据。 `MimeBodyPart`是`Message`的一个子类,专门用来处理MIME类型的邮件部分。每个`MimeBodyPart`可以代表邮件的独立部分,例如一个纯文本段落、一个图片附件或者一个嵌入式图像。通过设置`MimeBodyPart`的`Content-Type`头,我们可以指定这部分数据的类型。 `MimeMultipart`类则是用于将多个`MimeBodyPart`组合在一起的容器,形成一个多部分的消息。这使得在一封邮件中可以包含多种不同格式的内容,例如同时发送文本和图片。`MimeMultipart`允许我们定义邮件的结构,例如定义各部分的顺序和它们之间的分隔符。 在创建邮件时,首先需要配置邮件会话(`Session`),该会话包含了连接邮件服务器所需的参数,如SMTP服务器地址、端口号、用户名和密码。然后,使用`MimeMessage`实例化邮件对象,并通过`setFrom()`、`setRecipient()`、`setSubject()`和`setText()`等方法填充邮件的基本信息。如果邮件需要包含附件,可以创建`MimeBodyPart`实例,添加附件后将其添加到`MimeMultipart`实例中,最后将`MimeMultipart`设置为`MimeMessage`的主体。 以下是一个创建简单文本邮件的示例代码片段: ```java Properties props = new Properties(); props.put("mail.smtp.host", "smtp.qq.com"); props.put("mail.smtp.port", "587"); props.put("mail.smtp.auth", "true"); Session session = Session.getInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("123456@qq.com", "your-password"); } }); MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("123456@qq.com")); message.setRecipient(Message.RecipientType.TO, new InternetAddress("123456@163.com")); message.setSubject("测试邮件"); message.setText("这是一封来自JavaMail的测试邮件。"); Transport.send(message); ``` 这段代码创建了一个简单的邮件,设置了发件人、收件人、主题和正文,然后通过`Transport.send()`方法发送出去。如果要添加附件或创建复杂的MIME结构,还需要使用`MimeBodyPart`和`MimeMultipart`进一步扩展这个基本框架。