java foxmail 附件_【Mail】JavaMail发送带附件的邮件(二)

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("中文呵呵logo.jsg%5C%22","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 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值