首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将8位MIME消息转换为quoted-printable

将8位MIME消息转换为quoted-printable
EN

Stack Overflow用户
提问于 2011-01-21 10:17:42
回答 1查看 2.4K关注 0票数 2

将包含原始8位部分的MIME电子邮件转换为仅包含7位部分的RFC822兼容邮件的最简单方法是什么?

这些部分必须自动转换为"Content-Transfer-Encoding: quoted-printable“。

我的应用程序是用Java开发的。但是一个命令行工具就更好了。我尝试过reformime,但这个工具似乎有错误,不能正确地重写消息:-(

谢谢你的帮助

奥利维尔

EN

回答 1

Stack Overflow用户

发布于 2011-01-21 10:24:10

JavaMail似乎是一个很好的解决方案。从您的文件创建一个MimeMessage,找到您想要更改其内容传输编码的主体部分,调用MimeBodyPart.setHeader("Content-Transfer-Encoding", "quoted-printable"),并通过MimeMessage.writeTo()写出结果消息。

大致是这样的:

代码语言:javascript
复制
Session session = Session.getInstance(new Properties());
MimeMessage mm = new MimeMessage(new FileInputStream(msgfile));
// assuming we know that it's a multipart; otherwise, check Content-Type first...
MimeMultipart multi = (MimeMultipart) mm.getContent();
for (int i = 0; i < multi.getCount(); i++) {
    MimeBodyPart mbp = (MimeBodyPart) multi.getBodyPart(i);
    mbp.setHeader("Content-Transfer-Encoding", "quoted-printable");
}
mm.saveChanges();
mm.writeTo(new FileOutputStream(outfile));

请注意,当您对消息进行更改时,默认情况下MimeMessage将重置Message-ID标头。如果您不想这样做,可以将MimeMessage.updateMessageID()重写为no-op。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4754793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档