javaxmail以文件形式发送pdf

iqxoj9l9  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(421)

嗨,stackoverflow社区,
我正在尝试解决javax邮件的一个问题,我有一个发送带有附件的邮件的smtp服务。我发送的pdf正确,如果我看了电子邮件,它表明这是一个pdf文件,但当我按下载保存为文件,可以由acrobat reader正确打开。
这是我设置文档的代码

...
    byte[] bytearray = "This is a PDF Document".getBytes();
    ByteArrayDataSource bds = new ByteArrayDataSource(bytearray, "application/pdf");
    attachmentBodyPart.setDataHandler(new DataHandler(bds));
    attachmentBodyPart.setFileName("prueba");
    attachmentBodyPart.setHeader("Content-Type", "application/pdf");
    multipart.addBodyPart(attachmentBodyPart);
...

这是收到的邮件的图片

我是这样下载的。

我该怎么办?我错过了什么?
谢谢你的建议。

fgw7neuy

fgw7neuy1#

您只是以pdf文件的形式发送文本,正如预期的那样,它将不是任何pdf阅读器都可以打开的有效pdf文件。
你可以使用像itext这样的库来创建一个有效的pdf文件,然后将它附加到电子邮件中。
使用itext的示例代码:

Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream("iTextHelloWorld.pdf"));

document.open();
Font font = FontFactory.getFont(FontFactory.COURIER, 16, BaseColor.BLACK);
Chunk chunk = new Chunk("Hello World", font);

document.add(chunk);
document.close();

供进一步阅读:java中的PDF

相关问题