使用OpenSSL解码/提取smime.p7m文件内容(带嵌入文件的电子邮件)?

时间:2009-01-14 16:14:34

标签: openssl smime

我们有一个旧进程(VBScript),它读取公共邮箱并将某些电子邮件处理到数据库中。

新规定所有带附件的邮件现在都经过数字签名。

该过程现在只提取一个文件(smime.p7m)。使用基于GUI的查看器,我可以看到嵌入的文件并提取它们没有问题。但是,我真正需要的是一个基于命令行的extracter,它会写出嵌入的文件(PDF,DOC,XLS) - 它们没有加密,只是签名。我通过使用没有证书的笔记本电脑进行了测试,只需使用上述查看器打开smime.p7m文件。

看起来OpenSSL将解码/解压缩这个,并且有人设法获得在Windows上编译的版本。但是,对可执行文件的大量试验和错误测试令人沮丧,因为我找不到正确的标志组合,只是说“打开smime.p7m文件并写出你找到的所有嵌入文件”。在所有选项之后,“openssl smime”似乎总是想要一个“cert.pem”而我还没有。

我错过了什么?提前谢谢。

2 个答案:

答案 0 :(得分:4)

您是否尝试过openssl的“-noverify”选项?

对于仅签名邮件,您可以使用   “openssl smime -verify -in -noverify -out / tmp / blob”

然后你可以使用类似RFC822的解析器从“blob”中获取正文和附件。这意味着您的解析器必须能够使用quoted-printable和base64等编码。

答案 1 :(得分:-3)

看起来唯一可用的选项是使用Chilkat的库编写一个简单的程序。这个选项的价格是149美元或289美元,具体取决于每个开发人员的许可类型,但至少它是免版税的。