我有一个生成PDF文件的java类..我使用java Mail发送电子邮件..现在我想知道如何将生成的pdf附加到java邮件而不保存在本地.... 有没有办法在飞行中附上pdf ...
答案 0 :(得分:1)
实际上有一种方法可以创建和附加文件。您应该从文件数据中获取字节,并指定特定的内容类型。 http://www.feedforall.com/mime-types.htm
public static class CustomFileDataSource extends FileDataSource {
private byte[] data;
public CustomFileDataSource(String fileName, byte[] data) {
super(fileName);
this.data = data;
}
@Override
public String getContentType() {
return "application/pdf";
}
@Override
public InputStream getInputStream() throws IOException {
return new ByteArrayInputStream(data);
}
}
MimeBodyPart filePart = new MimeBodyPart();
filePart.setDataHandler(new DataHandler(new CustomFileDataSource(file.getFileName(),file.getFile())));
filePart.setFileName(file.getFileName());
Multipart mp = new MimeMultipart();
mp.addBodyPart(filePart);
message.setContent(mp);
答案 1 :(得分:0)
你做不到。在连接之前,至少需要一个临时的地方保存在本地。你能说出你想要的东西吗?然后,我们将能够为您真正需要的建议提供解决方案。