使用 javamail 解析 eps 附件

Posted

技术标签:

【中文标题】使用 javamail 解析 eps 附件【英文标题】:eps attachment parsing with javamail 【发布时间】:2013-05-19 16:14:19 【问题描述】:

使用 javamail 解析 eml 中的 eps 附件是否需要任何特殊处理 我对其他类型的附件没有任何问题。只有 eps 附件有问题

当我使用 Outlook 2010 发送 eps 附件时,它会将编码从 base64 转换为quoted-printable。

下面是我要解析的 eps 附件的标题。

内容类型:应用程序/后记; 名称="LOGO.eps" 内容传输编码:quoted-printable 内容处置:附件; 文件名="LOGO.eps"

附件已提取。但是当我用文档查看器打开它时,它说永远加载

【问题讨论】:

【参考方案1】:

JavaMail 试图通过查看实际数据来猜测数据的最佳 Content-Transfer-Encoding。如果 JavaMail 猜测数据是文本,它可能会使用quoted-printable。在某些情况下,猜测可能是错误的,在这种情况下,您需要自己指定编码。如果您使用的是 JavaMail 1.5,有一个 new attachFile method 可以让这更容易。

【讨论】:

谢谢。我在生成附件流时没有问题。但仅限于解析它。引用的可打印编码由 Outlook2010 设置。我正在使用 javamail 解析附件 那么您需要详细说明您是如何“解析”它的,以及您打开它时使用的“文档查看器”是什么。您是否在打开/解析之前将其保存到文件中? Multipart mp= Part.getContent; MimeBodyPart mbp=Multipart.getContent();然后从 mimebodypart.getInputStream() 获取流并写入文件。使用 linux 文档查看器阅读 您可能没有将其正确保存到文件中。见this JavaMail FAQ entry。

以上是关于使用 javamail 解析 eps 附件的主要内容,如果未能解决你的问题,请参考以下文章

javaMail邮件接收解析内容及附件 及删除邮件

Javamail 使用 7BIT 内容传输编码解析电子邮件正文

javamail如何处理退信

javamail接收邮件报错

[Java] JavaMail 发送 html 格式带附件的邮件

如何使用 JavaMail 发送带有附件的 html 电子邮件