JavaMail base64编码
我有一些Java代码,它发送一封电子邮件,代码如下:JavaMail base64编码,java,encoding,base64,jakarta-mail,mime,Java,Encoding,Base64,Jakarta Mail,Mime,我有一些Java代码,它发送一封电子邮件,代码如下: MimeBodyPart part = new MimeBodyPart(); part.setContent(htmlString, "text/html; charset=\"UTF-8\""); part.setHeader("MIME-Version", "1.0"); part.setHeader("Content-Type", "text/html; charset=\"UTF-8\""); part.setHeader("Imp
MimeBodyPart part = new MimeBodyPart();
part.setContent(htmlString, "text/html; charset=\"UTF-8\"");
part.setHeader("MIME-Version", "1.0");
part.setHeader("Content-Type", "text/html; charset=\"UTF-8\"");
part.setHeader("Importance", severityVal);
mimeMultiPart.addBodyPart(htmlPart);
mimeMessage.setContent(mimeMultiPart);
。。。等等
如何在base64中为这封传出的电子邮件编码“part”MimeBodyPart?来自:
问:尽管JavaMail为我完成了所有的编码和解码,但我需要手动控制身体某些部位的编码。
答:在极少数需要控制编码的情况下,有几种方法可以覆盖JavaMail的默认行为。一个简单的方法如下。创建整个消息后,调用msg.saveChanges()
,然后使用类似mbp.setHeader(“内容传输编码”,“base64”)
的方法强制对给定的身体部位进行base64编码
另一种方法是子类化
MimeBodyPart
并重写updateHeaders
方法,以便它首先调用super.updateHeaders()
,然后如上所述设置内容传输编码
头。只需添加以下语句:
part.setHeader("Content-Transfer-Encoding", "base64");
在设置part.setDataHandler(…)
或part.setContent(…)
的代码行之后,数据源/处理程序将自行调整以匹配您刚才为主体部分指定的内容传输编码
您可能还想考虑用相同的标记设置页眉,例如:
part.setHeader("Content-Type", "application/octet-stream");
我有类似的问题,请告诉我。