代码之家  ›  专栏  ›  技术社区  ›  Tommy

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

  •  4
  • Tommy  · 技术社区  · 15 年前

    我需要使用javamail发送一个pdf文件。PDF当前为字节[]。如何将其放入数据源?

    byte[] pdffile = ....
    
    messageBodyPart = new MimeBodyPart();
    
    DataSource source = ???
    
    messageBodyPart.setDataHandler(new DataHandler(source));
    messageBodyPart.setFileName(filename);
    
    multipart.addBodyPart(messageBodyPart);
    
    2 回复  |  直到 15 年前
        1
  •  7
  •   jheddings    15 年前

    使用 javax.mail.util.ByteArrayDataSource :

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

    正如您可能知道的,如果PDF在文件系统上,那么 FileDataSource :

    DataSource source = new FileDataSource(pdfpath);
    
        2
  •  3
  •   Jacob Mattison    15 年前

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