我想发送html内容以及附件。那怎么能用同一个邮件发送呢?
有人可以指导我。谢谢
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(user));
message.addRecipient(Message.RecipientType.CC,new InternetAddress("username@abc.com"));
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText(data, "text/html");
MimeBodyPart messageBodyPart2 = new MimeBodyPart();
String filename = "Data.xlsx";//change accordingly
DataSource source = new FileDataSource(filename);
messageBodyPart2.setDataHandler(new DataHandler(source));
messageBodyPart2.setFileName(filename);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart1);
multipart.addBodyPart(messageBodyPart2);
message.setSubject("FOS Report");
message.setContent(multipart);
//send the message
Transport.send(message);
System.out.println("message sent successfully...");
}
catch (MessagingException e) {
e.printStackTrace();}
答案 0 :(得分:0)
当您有两种不同类型的内容(在您的情况下为二进制和HTML)时,您必须使用Multipart进行正确的再现。 您可以在此处了解Multipart:http://docs.oracle.com/javaee/6/api/javax/mail/Multipart.html
关于如何使用Multipart使用JavaMail,这是一个非常好的教程: https://www.programcreek.com/java-api-examples/javax.mail.Multipart
如果您需要进一步的帮助,请发表评论/收件箱。