javaMail格式以及相应编码等问题

首先明确一个概念:MIME, 全称为"Multipurpose Internet Mail Extensions", 比较确切的中文名称为"多用途互联网邮件扩展"。
它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049。

以下来总结mail的基本类型

第一种:
名称:text/plain

Content-Type: text/plain;
 format=flowed;
 charset="iso-2022-jp";
 reply-type=original
Content-Transfer-Encoding: 7bit

只带纯文本正文,基本上就是RFC 822格式;


第二种:multipart/mixed(第一种 + 一本添附文件)

Content-Type: multipart/mixed;
 boundary="----=_NextPart_000_0121_01C7FC71.8E404870"
=============

This is a multi-part message in MIME format.
// 下面这个应该就是mail正文文本的内容和格式
------=_NextPart_000_0121_01C7FC71.8E404870
Content-Type: text/plain;
 format=flowed;
 charset="iso-2022-jp";
 reply-type=original
Content-Transfer-Encoding: 7bit

// 下面这个应该就是mail的添附文件的内容和格式
------=_NextPart_000_0121_01C7FC71.8E404870
Content-Type: application/octet-stream;
 name="Test.java"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename="Test.java"


第三种:multipart/alternative(就是所谓的html格式的文件)

Content-Type: multipart/alternative;
 boundary="----=_NextPart_000_0130_01C7FC72.98622A70" 

This is a multi-part message in MIME format.
// 为什么格式是text/plain呢?不明白。
------=_NextPart_000_0130_01C7FC72.98622A70
Content-Type: text/plain;
 charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable <script type="text/javascript"> </script>

// 再接下来的东西就更加让我觉得奇怪了?

------=_NextPart_000_0130_01C7FC72.98622A70
Content-Type: text/html;
 charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-2022-jp">
<META content=3D"MSHTML 6.00.2900.2912" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
。。。。。

第四种:multipart/mixed(就是第三种 + 一个添附文件)这样看来,所有带添附文件的mail都是这样的格式的了。
Content-Type: multipart/mixed;
 boundary="----=_NextPart_000_013B_01C7FC73.31485110"

This is a multi-part message in MIME format.
// 这是什么东西?

------=_NextPart_000_013B_01C7FC73.31485110
Content-Type: multipart/alternative;
 boundary="----=_NextPart_001_013C_01C7FC73.31485110"


------=_NextPart_001_013C_01C7FC73.31485110
Content-Type: text/plain;
 charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

// 怎么还有?
------=_NextPart_001_013C_01C7FC73.31485110
Content-Type: text/html;
 charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

// 这个属于添附文件的格式。

------=_NextPart_000_013B_01C7FC73.31485110
Content-Type: application/octet-stream;
 name="Test.java"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
 filename=" Test.java"


上面的东西目前为止相当的困惑

今天看到一个好东西:推荐一下

http://dev.csdn.net/article/18/18448.shtm

<script type="text/javascript"> </script> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要发送 HTML 格式的邮件,需要使用 JavaMail API 中的 MimeMessage 和 MimeMultipart 类。下面是一个简单的样例代码: ```java import java.util.Properties; import javax.mail.*; import javax.mail.internet.*; public class SendHtmlEmail { public static void main(String[] args) { String to = "recipient@example.com"; // 收件人邮件地址 String from = "sender@example.com"; // 发件人邮件地址 String host = "smtp.example.com"; // SMTP 服务器地址 // 设置邮件会话的属性 Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", host); // 获取默认的 Session 对象 Session session = Session.getDefaultInstance(properties); try { // 创建一个默认的 MimeMessage 对象 MimeMessage message = new MimeMessage(session); // 设置 From: 头部头字段 message.setFrom(new InternetAddress(from)); // 设置 To: 头部头字段 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置邮件主题 message.setSubject("HTML 邮件"); // 创建一个 Multipart 消息对象 Multipart multipart = new MimeMultipart(); // 创建一个 MimeBodyPart 对象,包含 HTML 内容 BodyPart htmlBodyPart = new MimeBodyPart(); String htmlContent = "<h1>这是一封 HTML 邮件</h1><p>这是邮件的正文内容。</p>"; htmlBodyPart.setContent(htmlContent, "text/html"); // 将 HTML 内容添加到 Multipart 消息对象中 multipart.addBodyPart(htmlBodyPart); // 将 Multipart 消息对象设置为邮件内容 message.setContent(multipart); // 发送邮件 Transport.send(message); System.out.println("邮件已发送。"); } catch (MessagingException mex) { mex.printStackTrace(); } } } ``` 在上面的代码中,我们首先设置了邮件会话的属性,包括 SMTP 服务器地址。然后获取默认的 Session 对象。 接着,创建一个 MimeMessage 对象,并设置发件人、收件人和邮件主题。我们还创建了一个 Multipart 消息对象,并将 HTML 内容添加到其中。最后,将 Multipart 消息对象设置为邮件内容,并发送邮件。 需要注意的是,发送邮件的过程可能需要进行身份验证。如果需要身份验证,可以通过设置 Session 对象的属性来指定身份验证相关的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值