Java 邮件 API - 以 com.sun.mail.util.BASE64DecoderStream 形式发送带附件的电子邮件

Java Mail API - send email with attachment as com.sun.mail.util.BASE64DecoderStream

我们正在使用 Apache Camel 电子邮件通道从邮箱中读取电子邮件,参与者在其中发送带有 XML 附件的电子邮件。我们收到了一封没有继续处理的电子邮件,因为一旦 Camel 尝试读取附件,它就会以 com.sun.mail.util.BASE64DecoderStream 的形式附加附件,而我们没有解码器。我想使用 Java Mail API 重现此问题,但我无法发送此类电子邮件。邮件中的附件是这样附上的:

_002_148827254056800396s1npspdssma1pdnpslocal_
Content-Type: application/octet-stream;
    name="20170301_ATC_STATNETT_to_CASC.xml"
Content-Description: 20170301_ATC_STATNETT_to_CASC.xml
Content-Disposition: attachment;
    filename="20170301_ATC_STATNETT_to_CASC.xml"; size=3709;
    creation-date="Tue, 28 Feb 2017 09:02:22 GMT";
    modification-date="Tue, 28 Feb 2017 09:02:22 GMT"
Content-ID: <838DF9275132204E9619666B6B818208@casc.eu>
Content-Transfer-Encoding: base64

PD94bWwgdmVyc2lvbj0Ii8+PERvY3VtZW50VmVyc2lvbiB2PSIxIi8+PERv
Y3VtZW50VHlwZSB2PSJBMTMiLz48UHJvY2Vzc1R5cGUgdj0iQTA3Ii8+PFNlbmRlcklkZW50aWZp
Y2F0aW9uIHY9IjEwWDEwMDFBMTAwMUEzOFkiIGNvZGluZ1NjaGVtZT0iQTAxIi8+PFNlbmRlclJv
dD4NCg==

--_002_148827254056800396s1npspdssma1pdnpslocal_--

但我无法撰写这样一封带有附件的电子邮件,在 Camel 处理期间,附件将被识别为 com.sun.mail.util.BASE64DecoderStream。

你能给我一些建议吗?谢谢

当您收到带有 BASE64DecoderStream 的消息时,不需要对其进行解码。该流是 JavaMail 用来解码编码消息部分的内容。您需要做的就是读取流以获取解码数据。