问题描述
我需要从 bash 发送带有二进制附件的加密电子邮件。我已经阅读了 RFC、openssl 文档以及 SF 中的一些其他帖子,但无济于事。
目前我理解的流程是这样的:
- 创建 MIME 消息
- 使用 openssl smime 对其进行加密,从而为信封生成额外的标头。这应该用我自己的私钥签名,但用收件人的公钥加密。
- 将此输出通过管道发送到 sendmail
- 接收方应该能够在 Outlook 中解密整个内容。
但是我看到的是一些乱码。如果有人能在我搞砸的地方发光,我会很感激。
以下是具体细节:
1. MIME 消息
From: <FROM>
To: <TO>
Subject: <SUBJECT>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="<BOUNDARY>"
--<BOUNDARY>
Content-Type: text/plain; charset=utf-8
<TEXT>
--<BOUNDARY>
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename= "<FILENAME>"
<BASE64_DATA>
--<BOUNDARY>
2.签名和加密:
SIGNED=$(openssl smime -sign -in mime.txt -signer MyPublic.cer -inkey MyPrivate.key)
ENCRYPTED=$(openssl smime -encrypt -subject "Work damn you" RecipientPublic.cer <<< $SIGNED)
3.发送
echo "$ENCRYPTED" | sendmail [email protected]
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)