【发布时间】:2014-11-27 05:26:15
【问题描述】:
我正在使用下面的代码发送 xls 文件并以表格格式显示一些数据。我能够将 xls 文件作为附件获取,但 html 代码不是表格格式。如果我取消注释 msg.setContent(body, "text/html") 行,那么我只会在正文中获得表格格式,但附件不存在
public synchronized static void sendEmail(Session session, String toEmail, String subject, String body, String recipient) {
try {
MimeMessage msg = new MimeMessage(session);
// msg.addHeader("Content-type", "text/html");
msg.setFrom(new InternetAddress("abc@xyz", "abc@xyz"));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail, false));
msg.setReplyTo(InternetAddress.parse(recipient, false));
msg.setSubject(subject);
msg.setSentDate(new Date());
//==================================================================
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(body);
// create the second message part
MimeBodyPart mbp2 = new MimeBodyPart();
// attach the file to the message
FileDataSource fds = new FileDataSource("D:/Shashank/output.xls");
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(fds.getName());
// create the Multipart and add its parts to it
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// add the Multipart to the message
msg.setContent(mp);
// msg.setContent(body, "text/html");
msg.saveChanges();
//==================================================================
System.out.println("Message is ready");
Transport.send(msg);
System.out.println("EMail Sent Successfully!!");
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】:
-
尝试将 Content-Type 标头添加到您的 HTML 正文部分。
mbp1.addHeader("Content-type", "text/html"); -
@RichardNeish:添加此附件后附件不存在,但表格为 html 格式。请帮助:(
标签: java jakarta-mail