Java Mail API - 发送附件为com.sun.mail.util.BASE64DecoderStream的电子邮件

时间:2017-04-13 09:27:15

标签: apache-camel base64 javamail

我们正在使用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。

你能告诉我吗?感谢。

1 个答案:

答案 0 :(得分:2)

当您收到BASE64DecoderStream的消息时,不需要解码它。该流是JavaMail用于解码编码消息部分的流。您需要做的就是读取流以获取解码数据。