2017-04-13 142 views
0

我们使用Apache Camel电子邮件通道从邮箱中读取电子邮件,参与者用XML附件发送电子邮件。我们收到一封未被执行的电子邮件,因为一旦骆驼尝试阅读附件,它会将附件附加为com.sun.mail.util.BASE64DecoderStream,并且我们没有解码器。我想使用Java邮件API重现此问题,但我无法发送此类电子邮件。在电子邮件中的附件被安装是这样的:Java邮件API - 发送附件为com.sun.mail.util.BASE64DecoderStream的电子邮件

_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: <[email protected]> 
Content-Transfer-Encoding: base64 

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

--_002_148827254056800396s1npspdssma1pdnpslocal_-- 

但我不能够撰写这样的电子邮件,这将在处理过程中由骆驼被识别为com.sun.mail.util.BASE64DecoderStream附件。

你能给我建议吗?谢谢。

回答

2

当你收到BASE64DecoderStream的消息时,你的不需要对它进行解码。该流是JavaMail用来解码编码消息部分的内容。您只需读取流即可获取解码数据。