Java 如何将Pdf文件附加到邮件

Java 如何将Pdf文件附加到邮件,java,Java,我正在尝试使用java将一个现成的pdf文件附加到邮件中,因此我在下面进行了尝试 String filename = "file.pdf"; ByteArrayOutputStream bos = new ByteArrayOutputStream(); ??.write(bos); DataSource fds = new ByteArrayDataSource(bos.toByteArray(), "application/pdf"); MimeBodyPart mbp2 = ne

我正在尝试使用java将一个现成的pdf文件附加到邮件中,因此我在下面进行了尝试

String filename = "file.pdf";

 ByteArrayOutputStream bos = new ByteArrayOutputStream();
??.write(bos);

 DataSource fds = new ByteArrayDataSource(bos.toByteArray(), "application/pdf");
 MimeBodyPart mbp2 = new MimeBodyPart();            
 mbp2.setDataHandler(new DataHandler(fds));   
 mbp2.setFileName(filename); 
我不明白会是什么而不是“??”。
因此,请向我推荐。

请参考以下代码:

 if (arrayInputStream != null && arrayInputStream instanceof ByteArrayInputStream) {
    // create the second message part with the attachment from a OutputStrean
    MimeBodyPart attachment= new MimeBodyPart();
    ByteArrayDataSource ds = new ByteArrayDataSource(arrayInputStream, "application/pdf"); 
    attachment.setDataHandler(new DataHandler(ds));
    attachment.setFileName("Report.pdf");
    mimeMultipart.addBodyPart(attachment);
}

javax.mail.util.ByteArrayDataSource
在JavaMail 1.4中引入,下面是一些相同的指针

如果您使用Spring的JavaMail API,您可以相当容易地完成这类事情(或者至少,像JavaMail API允许的那样容易,这并不多)

附件数据可以是Spring的任何资源抽象,
ByteArrayResource
只是其中之一

请注意,SpringAPI的这一部分是独立的,它不需要(但确实受益于)Spring容器

JavaMailSenderImpl mailSender = ... instantiate and configure JavaMailSenderImpl here
final byte[] data = .... this holds my PDF data

mailSender.send(new MimeMessagePreparator() {
   public void prepare(MimeMessage mimeMessage) throws Exception {
      MimeMessageHelper helper = new MimeMessageHelper(mimeMessage);
     // set from, to, subject using helper
     helper.addAttachment("my.pdf", new ByteArrayResource(data));
   } 
});

但是arrayInputStream呢,怎么做呢?你可以在这里参考:我还没有得到,arrayInputStream中有什么商店