JavaMail base64编码 [英] JavaMail base64 encoding
问题描述
我有一些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("Importance", severityVal);
mimeMultiPart.addBodyPart(htmlPart);
mimeMessage.setContent(mimeMultiPart);
...等等.
如何为该外发电子邮件在base64中对部分" MimeBodyPart进行编码?
来自 docs :
问:即使JavaMail为我完成了所有编码和解码,我仍需要手动控制某些身体部位的编码. 答:在极少数情况下,您需要控制编码,有几种方法可以覆盖JavaMail的默认行为.一种简单的方法如下.创建完整的消息后,调用msg.saveChanges()
,然后使用类似mbp.setHeader("Content-Transfer-Encoding", "base64")
的代码对给定的主体部分强制进行base64编码.
另一种方法是继承MimeBodyPart
的子类并覆盖updateHeaders
方法,以便它首先调用super.updateHeaders()
,然后如上所述设置Content-Transfer-Encoding
头.
I have some Java code which sends out an email with code somewhat like the following:
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);
... and so on.
How can I encode the "part" MimeBodyPart in base64 for this outgoing email?
From the docs:
Q: Even though JavaMail does all the encoding and decoding for me, I need to manually control the encoding for some body parts.
A: In the rare case that you need to control the encoding, there are several ways to override JavaMail's default behavior. A simple approach is as follows. After creating the entire message, call msg.saveChanges()
and then use something like mbp.setHeader("Content-Transfer-Encoding", "base64")
to force base64 encoding for the given body part.
Another approach is to subclass MimeBodyPart
and override the updateHeaders
method so that it first calls super.updateHeaders()
and then sets the Content-Transfer-Encoding
header as above.
这篇关于JavaMail base64编码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!