JavaMail base64编码 [英] JavaMail base64 encoding

查看:135
本文介绍了JavaMail base64编码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆