我需要 smtp 用于 mdadm 和其他警报,但我不想维护自己的 postifix/dovecot,有没有一种简单的方法可以使用 PGP 自动加密邮件并使用外部 SMTP 将其发送出去,然后使用 thunderbird 检索和解码它?
答案1
我没有完整的自动化步骤,但这是你如何在 Debian/Ubuntu 上手动发送一封加密的 PGP 电子邮件空邮件程序。
首次安装空邮件程序和sudo apt install --yes nullmailer
。
确保在 中配置了可正常工作的 SMTP 服务器/etc/nullmailer/remotes
。例如,我有这样一行:。mail.gandi.net smtp --auth-login --port=587 --starttls [email protected] --pass=x1x2x3x4x5x6
要构造实际的电子邮件,请将文本写入文件中example.txt
,然后对文件执行签名和加密gpg --recipient AEA84EDCF01AD86C4701C85C63113AE866587D0A --trust-model=always --armor --sign --encrypt example.txt
。在此示例中,收件人密钥属于 GnuPG 的作者 Werner Koch。当然,您需要将其替换为特定收件人的公钥。
如果你不想签署该消息,只需省略即可--sign
。如果你不想加密而只需对消息进行签名,使用gpg --clear-sign example.txt
。
这些命令将创建一个名为的文件example.txt.asc
。您可以看到它现在已加密:
$ head --lines=5 example.txt.asc
-----BEGIN PGP MESSAGE-----
hJ4DK5mfqc4EaxsSAwMEa0dD7d8SkCmgid3d2e1CGKGAV+rvlQoX0urYZfyaQta+
2+A13jXxJwgjK6+KZgmtizelapO1lklV0NEQFp/K1sDzkqS6QGpRDJJ6BFLh8cqC
B8+LaWH7b6bgH0TQgzseMM24wgGMcf6c6HNoEQPgagLRe3waj7Yxgfz0a7fvRuSs
...
接下来在文本编辑器中打开此文件,并在其前面添加强制性的最小电子邮件标头:
$ nano example.txt.asc
From: [email protected]
Cc: [email protected]
To: [email protected]
Subject: This is an encrypted demo email
-----BEGIN PGP MESSAGE-----
hJ4DK5mfqc4EaxsSAwMEa0dD7d8SkCmgid3d2e1CGKGAV+rvlQoX0urYZfyaQta+
2+A13jXxJwgjK6+KZgmtizelapO1lklV0NEQFp/K1sDzkqS6QGpRDJJ6BFLh8cqC
B8+LaWH7b6bgH0TQgzseMM24wgGMcf6c6HNoEQPgagLRe3waj7Yxgfz0a7fvRuSs
...
一旦有了这个,您就可以使用以下-n
参数测试 Nullmailer 将执行的操作:
$ cat example.txt.asc | nullmailer-inject -n
From: [email protected]
Cc: [email protected]
To: [email protected]
Subject: This is an encrypted demo email
Date: Thu, 28 Dec 2023 23:23:23 +0000
Message-Id: <1703771097.123.123.nullmailer@demo>
-----BEGIN PGP MESSAGE-----
hJ4DK5mfqc4EaxsSAwMEa0dD7d8SkCmgid3d2e1CGKGAV+rvlQoX0urYZfyaQta+
2+A13jXxJwgjK6+KZgmtizelapO1lklV0NEQFp/K1sDzkqS6QGpRDJJ6BFLh8cqC
B8+LaWH7b6bgH0TQgzseMM24wgGMcf6c6HNoEQPgagLRe3waj7Yxgfz0a7fvRuSs
...
如果一切看起来都不错,则重复相同的操作,但使用参数-h
来实际发送:
$ cat example.txt.asc | nullmailer-inject -h
$
Nullmailer 不会在此处提供任何结果/反馈。此时您所能做的就是查看原始队列,看看是否有任何未送达的消息sudo find /var/spool/nullmailer/ -type f
。如果您有线路,一段时间后您应该会在自己的电子邮件中看到一份副本Cc
。