【问题标题】:Parsing email with content instance of base64decoderstream使用 base64decoderstream 的内容实例解析电子邮件
【发布时间】:2013-09-19 13:48:50
【问题描述】:

我的应用程序轮询特定的电子邮件帐户并将电子邮件附件下载到磁盘。 我能够成功处理内联电子邮件附件和大纲附件作为部分(部分实例的 javamail 部分)。

但是,有一封特定的电子邮件,其中包含com.sun.mail.util.BASE64DecoderStream 类型的附件。

因此,我无法获取文件名或其输入流。 虽然,我可以在原始邮件标题中看到文件名。

以下是标题的快照:

    Date: Thu, 12 Sep 2013 13:05:29 -0400
    From: SXXXXX <SXXXXX@XXXXXXn.com>
    Subject: PO 926460
    Message-ID: <ADR38000000849147@prd410.gleason.com>
    X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrIKsWRWlGSWpSXmKPExsVy7Ey1ju7lL4ZBBp/nqVlsbr3K5MDosXdD
H3MAYxSXTUpqTmZZapG+XQJXRs/Cz2wFM64zVexdsIO5gXHDOaYuRk4OCQETib975jFD2GIS
F+6tZ+ti5OIQEjjGKLF3+VR2COc0o8SRNwsYQapYBLQl7nRuYgOx2QR0JOb8a2UHsYUFpCTa
Lq8FmyoioCHRuvk/2FReASOJV1ueQdmCEidnPmEBsTkFhCQ6rnaywmyesO4XM8R8Z4m316+B
7RISsJS40zyVDaJGU2LGgRtgu5gFbCWOfpkGZStKTOl+CGWrSazqWMg+gVFoFpJ1s5C0zELS    
    Content-Type: application/pdf; name="PO 926460.pdf"
    Content-Description: PO 926460
    Content-Transfer-Encoding: base64
    X-MS-Exchange-Organization-AuthSource: FANUCEXCHCHI03.FAC.local
    X-MS-Exchange-Organization-AuthAs: Anonymous
    X-TM-AS-Product-Ver: SMEX-10.0.0.1412-7.000.1014-20144.004
    X-TM-AS-Result: No--7.671100-5.000000-31
    X-TM-AS-User-Approved-Sender: No
    X-TM-AS-User-Blocked-Sender: No
    X-MS-Exchange-Organization-AVStamp-Mailbox: SMEXr^dE;1027300;0;This mail has
    been scanned by Trend Micro ScanMail for Microsoft Exchange;
    X-MS-Exchange-Organization-SCL: -1
    MIME-Version: 1.0

请协助,如何获取文件名并获取输入流,从而将其作为文件保存到磁盘。

【问题讨论】:

    标签: base64 jakarta-mail email-attachments


    【解决方案1】:

    该邮件中没有附件。它是 MIME 类型“application/pdf”的单部分(而不是多部分)消息。由于 MimeMessage 是一个 Part,所以只需像处理附件 Part 一样对待它。

    【讨论】:

    • 我试着把它当作零件。我使用了docs.oracle.com/javaee/6/api/javax/mail/Message.html 的getFileName() 和getInputStream() 方法,但两个参数都是空的。当我将消息内容作为 com.sun.mail.util.BASE64DecoderStream 获取并以某种方式将此解码流转换为文件时,我觉得我需要解析标题以获取文件名。该电子邮件有一个 pdf 附件。
    • 我能够通过将消息对象转换为 MimeMessage 成功获取文件名,因此能够将附件保存到磁盘。谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-07-22
    • 2018-04-29
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2013-08-18
    • 2011-03-04
    相关资源
    最近更新 更多