使用 PGP 加密 nullmailer/ssmtp?

使用 PGP 加密 nullmailer/ssmtp?

我需要 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

相关内容