java实现邮件中插入批量图片

首先是MimeMessage这个类,继承于javax.mail.Message,底下还有IMAPMessage、POP3Message、SmartMimeMessage、SMTPMessage等实现,这里就不扯源码那么远了。

进入正题怎么用:

MimeMessage msg = new MimeMessage(session);
/**
 * 设置收件人抄送人标题等此处省略
 */
// 构造Multipart
MimeMultipart mp = new MimeMultipart();
// 向Multipart添加正文
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setContent(content+"
", "text/html;charset=utf-8"); MimeBodyPart img = new MimeBodyPart(); DataHandler dh = new DataHandler(new FileDataSource(path);//path代表图片路径 img.setDataHandler(dh); // 创建图片的一个表示用于显示在邮件中显示 img.setContentID(picName);//对应上正文里的cid名 mp.addBodyPart(img); mp.addBodyPart(mbpContent); mp.setSubType("related"); msg.setContent(mp); // 发送邮件 Transport.send(msg);

关于mp.setSubType("related");

这个参数可以设置related和mixed分别代表正文中插入和正文后附件形式,

(不写默认是mixed因为源码构造函数设置了mixed)

实现批量插入图片

实际上就是讲cid命名为循环下标

生成邮件正文时

for (int i = 0; i < paths.size(); i++) {
	htmlContent = htmlContent+"
"; }


发送中

            File[] filelist = file.listFiles();
			if(filelist!=null) {
				for(int i=0;i


你可能感兴趣的:(java实现邮件中插入批量图片)