gpt4 book ai didi

java - 作为电子邮件附件发送的 PDF 文件已损坏 (java)

转载 作者:行者123 更新时间:2023-12-02 12:44:44 25 4
gpt4 key购买 nike

我有一段代码尝试向用户发送电子邮件并附加 pdf 文件。但是,收到的电子邮件中的附件始终已损坏(简单文件(例如 txt 文件)就可以了)。原始文件没问题。

MultiPartEmail email = new MultiPartEmail();
email.setHostName("mailhost.example.com");
email.addTo("hello@example.com");
email.setFrom("hi@example.com", "hi");
email.setSubject("hello");
email.setMsg("hello");
File file = new File("file.pdf");
email.attach(file);

我还尝试使用 EmailAttachment 而不仅仅是 File,如下所示:

EmailAttachment attachment = new EmailAttachment();
attachment.setPath("path-to-file.pdf");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setName("file.pdf");
email.attach(attachment);

在这两种情况下,我都会收到一封附有 file.pdf 的电子邮件,但当我打开它时,我收到来自 Adob​​e Reader 的错误消息,提示“打开此文档时出错。文件已损坏且无法修复。 ”

有谁知道这个问题的解决办法吗?

最佳答案

我假设您正在使用 commons-email 依赖项,因为您创建了 EmailAttachment 的新实例。问题是pdf文件应该是byte[]。所以你可以尝试使用这样的东西来实现:

email.attach(new org.apache.commons.mail.ByteArrayDataSource(pdfInBytes, "application/pdf"),
"file.pdf", "PDF description", EmailAttachment.ATTACHMENT);

这对我的 commons-email 1.1 依赖项有用

关于java - 作为电子邮件附件发送的 PDF 文件已损坏 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44811401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com