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); // 发送邮件