生成PDF并附加到java邮件

时间:2011-06-27 15:43:47

标签: pdf javamail

我有一个生成PDF文件的java类..我使用java Mail发送电子邮件..现在我想知道如何将生成的pdf附加到java邮件而不保存在本地.... 有没有办法在飞行中附上pdf ...

2 个答案:

答案 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)

你做不到。在连接之前,至少需要一个临时的地方保存在本地。你能说出你想要的东西吗?然后,我们将能够为您真正需要的建议提供解决方案。