我要签名并加密我的邮件。
我当前的骆驼版本是2.13.0。
我可以为此使用骆驼功能吗?
主体是纯文本,因此不能使用XMLDSig。
预期结果应该是带有以下标头的邮件:
我不是骆驼用户,但是我很好奇并且玩过它。您想要的是S / MIME签名和加密。目前尚不可用,但是有一张票证,自2015年2月创建以来,从未得到任何回应。Camel具有MIME-Multipart数据格式,PGP加密(但仅对称),签名/验证(无加密)-但是我看不到将它们组合在一起以真正获得用于签名+加密电子邮件的有效S / MIME信封的方法。此外,PGP不是S / MIME,反之亦然。
我确实知道如何撰写和通过JavaMail + BouncyCastle库发送此类电子邮件,甚至还提供了示例代码。从理论上讲,您可以通过JavaMail + BouncyCastle创建MIME消息,然后使用Camel发送它或创建自己的S / MIME端点或数据格式(至少一种编组方式,如果不需要,则跳过编组)。但是开箱即用,我还没有找到一种方法。
更新:
即使我将预配置的经过签名和加密的MIME部分放在输入端点上,然后执行此操作...
.setHeader("From", simple("[email protected]"))
.setHeader("To", simple("[email protected]"))
.setHeader("Subject", simple("Signed & encrypted"))
.setHeader("Content-Type", simple("application/pkcs7-mime; name=\"smime.p7m\"; smime-type=enveloped-data"))
.setHeader("Content-Transfer-Encoding", simple("base64"))
...并且已发送邮件,像Thunderbird之类的邮件客户端无法真正显示该邮件,因为Camel邮件端点Content-Transfer-Encoding
将值覆盖了7bit
。关于此问题,还有另一张票证,但自2014年6月以来仍未解决。因此,在通过JavaMail和BouncyCastle构建消息后,暂时甚至无法使用邮件端点发送消息。您甚至必须自己发送它(通过JM + BC也很简单,但很烦人)。因此,由于端点和数据格式不适合S / MIME消息编写,因此当前您不能真正使用Camel基础结构。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句