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

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

byte[] pdffile = .... messageBodyPart = new MimeBodyPart(); DataSource source = ??? messageBodyPart.setDataHandler(new DataHandler(source)); messageBodyPart.setFileName(filename); multipart.addBodyPart(messageBodyPart); 

使用javax.mail.util.ByteArrayDataSource

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

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

 DataSource source = new FileDataSource(pdfpath); 

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