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

packagecom.hd.javamail;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importjava.util.Properties;importjavax.activation.DataHandler;importjavax.activation.DataSource;importjavax.activation.FileDataSource;importjavax.mail.Address;importjavax.mail.MessagingException;importjavax.mail.Multipart;importjavax.mail.Session;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeBodyPart;importjavax.mail.internet.MimeMessage;importjavax.mail.internet.MimeMultipart;importjavax.mail.internet.MimeUtility;importcom.sun.mail.util.MimeUtil;/***

*@authorH__D

* @date 2016年12月6日 下午7:38:33

**/

public classDemo3 {/*** 生成一份本地的邮件

*@paramargs

*@throwsMessagingException

*@throwsIOException*/

public static void main(String[] args) throwsMessagingException, IOException {//环境

Session session = Session.getDefaultInstance(newProperties());//邮件

MimeMessage msg = newMimeMessage(session);//设置主题

msg.setSubject("test123456");//发件人,注意中文的处理

msg.setFrom(new InternetAddress("\"" + MimeUtility.encodeText( "某某") + "\""));//设置邮件回复人

msg.setReplyTo(new Address[]{new InternetAddress("123456@163.com")});//整封邮件的MINE消息体

MimeMultipart msgMultipart = new MimeMultipart("mixed");//混合的组合关系//设置邮件的MINE消息体

msg.setContent(msgMultipart);//附件1

MimeBodyPart attch1 = newMimeBodyPart();//附件2

MimeBodyPart attch2 = newMimeBodyPart();//正文内容

MimeBodyPart content = newMimeBodyPart();//把内容,附件1,附件2加入到 MINE消息体中

msgMultipart.addBodyPart(attch1);

msgMultipart.addBodyPart(attch2);

msgMultipart.addBodyPart(content);//把文件,添加到附件1中//数据源

DataSource ds1 = new FileDataSource(new File("C:/Users/H__D/Desktop/1.txt"));//数据处理器

DataHandler dh1 = newDataHandler(ds1 );//设置第一个附件的数据

attch1.setDataHandler(dh1);//设置第一个附件的文件名

attch1.setFileName("file1.jpg");//把文件,添加到附件2中

DataSource ds2 = new FileDataSource(new File("C:/Users/H__D/Desktop/2.txt"));

DataHandler dh2= newDataHandler(ds2 );

attch2.setDataHandler(dh2);

attch2.setFileName(MimeUtility.encodeText("文件2.jpg"));//正文(图片和文字部分)

MimeMultipart bodyMultipart = new MimeMultipart("related");//设置内容为正文

content.setContent(bodyMultipart);//html代码部分

MimeBodyPart htmlPart = newMimeBodyPart();//html中嵌套的图片部分

MimeBodyPart imgPart = newMimeBodyPart();//正文添加图片和html代码

bodyMultipart.addBodyPart(htmlPart);

bodyMultipart.addBodyPart(imgPart);//把文件,添加到图片中

DataSource imgds = new FileDataSource(new File("C:/Users/H__D/Desktop/logo.png"));

DataHandler imgdh= newDataHandler(imgds );

imgPart.setDataHandler(imgdh);//说明html中的img标签的src,引用的是此图片

imgPart.setHeader("Content-Location", "http://sunteam.cc/logo.jsg");//html代码

htmlPart.setContent("中文呵呵logo.jsg%5C%22","text/html;charset=utf-8");//生成文件邮件

msg.saveChanges();//输出

OutputStream os = new FileOutputStream("C:/Users/H__D/Desktop/demo.eml");

msg.writeTo(os);

os.close();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值