如何将加密的电子邮件制作成 .p7m 文件?

如何将加密的电子邮件制作成 .p7m 文件?

这有点复杂,所以我将在这里解释我真正想要做什么:我有一台 Debian 服务器,我想每周自动通过电子邮件向自己发送某些日志。我将使用cron一个 bash 脚本在每周一午夜后不久将日志复制到 tarball 中。然后,我家用电脑上的 bash 脚本将从服务器下载 tarball 以及用作电子邮件正文的文件,并调用 AppleScript 来制作新的电子邮件消息。

这就是我被困住的地方——我找不到使用 AppleScript 和 Apple 邮件客户端加密和签名电子邮件的方法。我注意到,如果我在发送邮件之前设置延迟,Mail 会自动将其设置为加密和签名(就像我自己撰写邮件时通常会做的那样)。但是,在脚本运行时无法确保这一点——如果出现问题,脚本将盲目地发送未加密的电子邮件。

我的解决方案是以某种方式手动创建一个包含 tarball 和消息的 .p7m 文件,并将其附加到 AppleScript 创建的电子邮件中。然后,当我收到它时,Mail 会像对待任何其他带有附件的加密邮件一样对待它(对吗?)

如果有更好的方法可以做到这一点,请告诉我。^^(理想情况下,一切都可以从服务器完成,但似乎没有办法在不以纯文本形式存储密码的情况下自动发送邮件。)

(服务器运行的是 Debian squeeze;我的家用电脑是运行 OS X Lion 的 Mac。)

答案1

我发现发送 S/MIME 加密电子邮件最简单的方法是使用 openssl。

例如,首先,如果您的消息在文件中msg.body

openssl smime -encrypt -aes256 -out "msg.body.enc" "certificate.pem" <"msg.body" 2>"encryption.error"
sendmail -G -i [email protected] <"msg.body.enc"

在上面的例子中,发件人的公共 S/MIME 证书必须在 中可用certificate.pem

您不需要密码即可发送加密电子邮件,因为加密只需要公共证书。不过,您需要密码才能访问签名邮件所需的私钥,但在您的场景中,我认为没有必要对邮件进行签名,所以我不会对其进行签名。

相关内容