gpt4 book ai didi

java - Apache Commons 电子邮件使用 base64 编码附加

转载 作者:搜寻专家 更新时间:2023-11-01 02:14:18 24 4
gpt4 key购买 nike

我正在尝试通过 apache.commons.mail 发送一个 base64 编码的文件,但我无法接缝获取 Content-Transfer-Encoding: base64 它应该去的标题。

// Create the email
MultiPartEmail email = new MultiPartEmail();
email.setSmtpPort(587);
email.setDebug(false);
email.setHostName("smtp.gmail.com");
email.setAuthentication("from@gmail.com", "password");
email.setTLS(true);

email.addTo("to@example.com");
email.setFrom("from@example.com");
email.setSubject("subject");

email.attach(new ByteArrayDataSource(
Base64.encodeBase64(attachFull.getBytes()), "text/plain"),
"samplefile.txt",
"sample file desc",
EmailAttachment.ATTACHMENT
);

这就是收件人收到的东西。

------=_Part_0_614021571.1334210788719
Content-Type: text/plain; charset=Cp1252; name=texto.txt
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename=samplefile.txt
Content-Description: sample file desc

如何指定文件是 Base64 编码的?

最佳答案

最简单的解决方案是做这样的事情:

// create a multipart leg for a specific attach
MimeMultipart part = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler (new DataHandler(new ByteArrayDataSource(attachFull.getBytes(), "text/plain")));
messageBodyPart.removeHeader("Content-Transfer-Encoding");
messageBodyPart.addHeader("Content-Transfer-Encoding", "base64");
part.addBodyPart(messageBodyPart);
email.addPart(part);

javax 会自动将您的文件转换为 base64。

希望对您有所帮助。

关于java - Apache Commons 电子邮件使用 base64 编码附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10118348/

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