packagecom.wp.mail;importjava.io.FileOutputStream;importjava.util.Properties;importjavax.activation.DataHandler;importjavax.activation.FileDataSource;importjavax.mail.Message;importjavax.mail.Session;importjavax.mail.internet.InternetAddress;importjavax.mail.internet.MimeBodyPart;importjavax.mail.internet.MimeMessage;importjavax.mail.internet.MimeMultipart;importjavax.mail.internet.MimeUtility;/*** 复杂关系的邮件及中文编码问题
*
*@authoradmin
**/
public classMail03 {public static void main(String[] args) throwsException {
Properties properties= newProperties();
Session session=Session.getDefaultInstance(properties);
MimeMessage message= newMimeMessage(session);
message.setFrom(new InternetAddress("18779740569@163.com"));
message.addRecipients(Message.RecipientType.TO,"18779740569@163.com");
message.setSubject("这是复杂关系的邮件!");//文本
MimeBodyPart textPart = newMimeBodyPart();
textPart
.setContent("哈哈哈哈", "text/html;charset=UTF-8");//这里的utf-8编码只对内容有效,而对附件名无效//图片
MimeBodyPart imagePart = newMimeBodyPart();
DataHandler dh= new DataHandler(new FileDataSource("D:/1.jpeg"));
imagePart.setDataHandler(dh);
imagePart.setContentID("mm");//文本和图片合体,合体后再变为BodyPart部分
MimeMultipart mpart1 = newMimeMultipart();
mpart1.addBodyPart(textPart);
mpart1.addBodyPart(imagePart);
mpart1.setSubType("related");
MimeBodyPart textImagePart= newMimeBodyPart();
textImagePart.setContent(mpart1);//附件
MimeBodyPart attachmentPart = newMimeBodyPart();
dh= new DataHandler(new FileDataSource("D:/附件.zip"));
String filename= dh.getName();//获取文件名
attachmentPart.setDataHandler(dh);
attachmentPart.setFileName(MimeUtility.encodeText(filename));//手动设置文件名,注意文件名的中文乱码问题//全部合体
MimeMultipart mpart2 = newMimeMultipart();
mpart2.addBodyPart(textImagePart);
mpart2.addBodyPart(attachmentPart);
mpart2.setSubType("mixed");//复杂关系
message.setContent(mpart2);
message.saveChanges();
message.writeTo(new FileOutputStream("D:/3.eml"));
}
}