MIME: Multipurpose Internet Email Extension 多功能Internet 邮件扩充服务
MIME原来是同SMTP协议来起应用来,后来广泛应用于http等中。
其显著的特点是所有的内容用US-ASCII来显示,一个完整的MIME消息如下:
它包含一个头和内容体,内容体又可包含多个message, 每个消息有个消息头和消息体。
对于多媒体文件附加上消息加,一般可设置头Content-transfer-encoding为base64编码方式,将二进制流转为字条串方式。
------------------------------------------------------
生成一个MIME文档的例子:
-------------------------------------
Base64指用 a-z、A-Z、0-9 62个基础字符及 "+", "-","/","=" 中的几个 对进制流进行编码,
编码方法是将原来的三个字节变成6*4的方式四个字节, 6位二进制就是64个字符。
-----------------------------------
参考: http://en.wikipedia.org/wiki/MIME
MIME原来是同SMTP协议来起应用来,后来广泛应用于http等中。
其显著的特点是所有的内容用US-ASCII来显示,一个完整的MIME消息如下:
MIME-version: 1.0 Content-type: multipart/mixed; boundary="frontier" This is a message with multiple parts in MIME format. --frontier Content-type: text/plain This is the body of the message. --frontier Content-type: text/plain another message --frontier Content-type: application/octet-stream Content-transfer-encoding: base64 PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg== --frontier--
它包含一个头和内容体,内容体又可包含多个message, 每个消息有个消息头和消息体。
对于多媒体文件附加上消息加,一般可设置头Content-transfer-encoding为base64编码方式,将二进制流转为字条串方式。
------------------------------------------------------
生成一个MIME文档的例子:
import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMultipart; import javax.mail.internet.MimeUtility; public class MyTest { public static void main(String[] args){ try{ MimeMultipart mult=new MimeMultipart(); MimeBodyPart part1=new MimeBodyPart(); MimeBodyPart part3=new MimeBodyPart(); part1.setText("abc"); MimeBodyPart part2=new MimeBodyPart(); part2.setText("cdef<aaaa>"); mult.addBodyPart(part1); mult.addBodyPart(part2); //System.out.println(mult.toString()); FileDataSource source=new FileDataSource("d:\\temp\\log.jpg"); part3.setDataHandler(new DataHandler(source)); part3.setFileName(source.getName()); part3.setHeader("Content-Transfer-Encoding", "base64"); mult.addBodyPart(part3); mult.writeTo(System.out); System.out.println("------part3 is "+part3.getEncoding()); System.out.println("-----encode source is : " + MimeUtility.getEncoding(source)); }catch (Exception e){ e.printStackTrace(); } } }</aaaa>
-------------------------------------
Base64指用 a-z、A-Z、0-9 62个基础字符及 "+", "-","/","=" 中的几个 对进制流进行编码,
编码方法是将原来的三个字节变成6*4的方式四个字节, 6位二进制就是64个字符。
-----------------------------------
参考: http://en.wikipedia.org/wiki/MIME