JavaMail发送邮件附件和正文

JavaMail在发送同时带有正文和附件的时候,出现正文不显示的情况,原因是MimeBodyPart既设置了正文,又添加了附件内容,现解决如下:
Multipart multipart = new MimeMultipart();

MimeBodyPart textBodyPart = new MimeBodyPart(); // 用来设置正文的
textBodyPart.setText("这里是正文");
multipart.addBodyPart(textBodyPart); 

MimeBodyPart attrBodyPart = new MimeBodyPart(); // 用来设置附件的
DataSource dataSource = new FileDataSource(new File("filePath"));
attrBodyPart.setDataHandler(new DataHandler(dataSource));
// 设置编码格式,使附件能正常显示中文名
attrBodyPart.setFileName(MimeUtility.encodeText("fileName", "GBK", "B")); 
multipart.addBodyPart(attrBodyPart);

message.setContent(multipart, "text/html;charset=gbk");
Transport.send(message); // 发送邮件

你可能感兴趣的:(java,javamail,附件,正文)