jdk1.8 使用1.6.2 始终无法嵌入图片
Topic source知道原因了,因为内嵌图片设置了文件名,所以一直当成附件处理了。
/**
* 正文内嵌图片
*
* @param multipart
* @param imagePath
*/
public static void setMainBodyWithEmbedImage(Multipart multipart, String text, String imagePath) {
//正文对象
try {
//图片对象
MimeBodyPart imgPart = new MimeBodyPart();
Path path = Paths.get(imagePath);
//imgPart.setFileName(path.getFileName().toString());
imgPart.setDataHandler(new DataHandler(new ByteArrayDataSource(Files.newInputStream(path), "image/png")));
imgPart.setContentID("mailTestPic");
//imgPart.setHeader("Content-ID", "sunset");
MimeBodyPart textPart = new MimeBodyPart();
//textPart.setContent("<img src='cid:yuzq' />", "text/html;charset=utf-8");
textPart.setContent("这是一张图片<br/><a href='http://www.cnblogs.com/ysocean/p/7666061.html'><img src='cid:mailTestPic'/></a>", "text/html;charset=UTF-8");
MimeMultipart mm_text_image = new MimeMultipart();
mm_text_image.addBodyPart(imgPart);
mm_text_image.addBodyPart(textPart);
mm_text_image.setSubType("related"); // 关联关系
MimeBodyPart text_image = new MimeBodyPart();
text_image.setContent(mm_text_image);
multipart.addBodyPart(text_image);
} catch (MessagingException | IOException e) {
e.printStackTrace();
}
}
- 1
两把刷子闯江湖