1 packagecom.hd.javamail;2
3 importjava.io.File;4 importjava.io.FileOutputStream;5 importjava.io.IOException;6 importjava.io.OutputStream;7 importjava.util.Properties;8
9 importjavax.activation.DataHandler;10 importjavax.activation.DataSource;11 importjavax.activation.FileDataSource;12 importjavax.mail.Address;13 importjavax.mail.MessagingException;14 importjavax.mail.Multipart;15 importjavax.mail.Session;16 importjavax.mail.internet.InternetAddress;17 importjavax.mail.internet.MimeBodyPart;18 importjavax.mail.internet.MimeMessage;19 importjavax.mail.internet.MimeMultipart;20 importjavax.mail.internet.MimeUtility;21
22 importcom.sun.mail.util.MimeUtil;23
24 /**
25 *26 *@authorH__D27 * @date 2016年12月6日 下午7:38:3328 *29 */
30 public classDemo3 {31
32 /**
33 * 生成一份本地的邮件34 *@paramargs35 *@throwsMessagingException36 *@throwsIOException37 */
38 public static void main(String[] args) throwsMessagingException, IOException {39 //环境
40 Session session = Session.getDefaultInstance(newProperties());41
42 //邮件
43 MimeMessage msg = newMimeMessage(session);44 //设置主题
45 msg.setSubject("test123456");46 //发件人,注意中文的处理
47 msg.setFrom(new InternetAddress("\"" + MimeUtility.encodeText( "某某") + "\""));48 //设置邮件回复人
49 msg.setReplyTo(new Address[]{new InternetAddress("123456@163.com")});50
51 //整封邮件的MINE消息体
52 MimeMultipart msgMultipart = new MimeMultipart("mixed");//混合的组合关系53 //设置邮件的MINE消息体
54 msg.setContent(msgMultipart);55
56 //附件1
57 MimeBodyPart attch1 = newMimeBodyPart();58 //附件2
59 MimeBodyPart attch2 = newMimeBodyPart();60 //正文内容
61 MimeBodyPart content = newMimeBodyPart();62
63 //把内容,附件1,附件2加入到 MINE消息体中
64 msgMultipart.addBodyPart(attch1);65 msgMultipart.addBodyPart(attch2);66 msgMultipart.addBodyPart(content);67
68 //把文件,添加到附件1中69 //数据源
70 DataSource ds1 = new FileDataSource(new File("C:/Users/H__D/Desktop/1.txt"));71 //数据处理器
72 DataHandler dh1 = newDataHandler(ds1 );73 //设置第一个附件的数据
74 attch1.setDataHandler(dh1);75 //设置第一个附件的文件名
76 attch1.setFileName("file1.jpg");77
78 //把文件,添加到附件2中
79 DataSource ds2 = new FileDataSource(new File("C:/Users/H__D/Desktop/2.txt"));80 DataHandler dh2 = newDataHandler(ds2 );81 attch2.setDataHandler(dh2);82 attch2.setFileName(MimeUtility.encodeText( "文件2.jpg"));83
84 //正文(图片和文字部分)
85 MimeMultipart bodyMultipart = new MimeMultipart("related");86 //设置内容为正文
87 content.setContent(bodyMultipart);88
89 //html代码部分
90 MimeBodyPart htmlPart = newMimeBodyPart();91 //html中嵌套的图片部分
92 MimeBodyPart imgPart = newMimeBodyPart();93
94 //正文添加图片和html代码
95 bodyMultipart.addBodyPart(htmlPart);96 bodyMultipart.addBodyPart(imgPart);97
98 //把文件,添加到图片中
99 DataSource imgds = new FileDataSource(new File("C:/Users/H__D/Desktop/logo.png"));100 DataHandler imgdh = newDataHandler(imgds );101 imgPart.setDataHandler(imgdh);102 //说明html中的img标签的src,引用的是此图片
103 imgPart.setHeader("Content-Location", "http://sunteam.cc/logo.jsg");104
105 //html代码
106 htmlPart.setContent("中文呵呵","text/html;charset=utf-8");107
108 //生成文件邮件
109 msg.saveChanges();110
111 //输出
112 OutputStream os = new FileOutputStream("C:/Users/H__D/Desktop/demo.eml");113 msg.writeTo(os);114 os.close();115 }116
117 }