本文介紹如何使用Java Mail發送帶圖片及附件的例子
1.生成一封帶圖片及附件的郵件
public static MimeMessage createMixedMail(Session session) throws Exception {
//創建郵件
MimeMessage message = new MimeMessage(session);
//發件人
message.setFrom("[email protected]");
//收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]"));
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;
}