如何使用JavaMail将文件附加到电子邮件

时间:2009-11-16 20:35:51

标签: java javamail

我需要使用JavaMail发送PDF文件。 PDF目前是一个字节[]。如何将其导入DataSource?

byte[] pdffile = ....

messageBodyPart = new MimeBodyPart();

DataSource source = ???

messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);

multipart.addBodyPart(messageBodyPart);

2 个答案:

答案 0 :(得分:7)

使用javax.mail.util.ByteArrayDataSource

DataSource source = new ByteArrayDataSource(pdffile, "application/pdf");

您可能知道,如果PDF在文件系统上,FileDataSource会更容易:

DataSource source = new FileDataSource(pdfpath);

答案 1 :(得分:3)

jheddings的答案对我来说似乎是正确的,但我还要补充说,如果你在应用程序中使用Spring框架,你可以利用Spring MimeMessageHelper,它包含一个很好的addAttachment()方法(并使消息创建的其余部分更容易。)