本文介绍如何使用Java Mail发送带图片及附件的例子
1.生成一封带图片及附件的邮件
public static MimeMessage createMixedMail(Session session) throws Exception {
//创建邮件
MimeMessage message = new MimeMessage(session);
//发件人
message.setFrom("xxx@qq.com");
//收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xxx@qq.com"));
message.setSubject("带附件和带图片的的邮件");
//正文
MimeBodyPart text = new MimeBodyPart();
text.setContent("xxx这是女的xxxx<br/><img src='cid:a.jpg'>","text/html;charset=UTF-8");
//图片
MimeBodyPart image = new MimeBodyPart();
image.setDataHandler(new DataHandler(new FileDataSource("xxx.jpg")));
image.setContentID("a.jpg");
//附件1
MimeBodyPart file= new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("b.txt"));
file.setDataHandler(dh);
file.setFileName(dh.getName());
//附件2
MimeBodyPart file2= new MimeBodyPart();
DataHandler dh2 = new DataHandler(new FileDataSource("c.xml"));
file2.setDataHandler(dh2);
file2.setFileName(dh2.getName());
//描述关系:正文和图片
MimeMultipart mp1 = new MimeMultipart();
mp1.addBodyPart(text);
mp1.addBodyPart(image);
mp1.setSubType("related");
//代表正文的bodypart
MimeBodyPart content = new MimeBodyPart();
content.setContent(mp1);
//描述关系:正文和附件
MimeMultipart mp2 = new MimeMultipart();
mp2.addBodyPart(file);
mp2.addBodyPart(file2);
mp2.addBodyPart(content);
mp2.setSubType("mixed");
message.setContent(mp2);
message.saveChanges();
message.writeTo(new FileOutputStream("W:\\MixedMail.eml"));
//返回创建好的的邮件
return message;
}