从命令行重新发送电子邮件

从命令行重新发送电子邮件

我想重现与邮件相关的问题,该问题与我无法控制的系统发送的邮件有关。为此,我想模仿这封有问题的电子邮件。

我有完全相同的邮件,因为它是以文本文件(标题+base64编码的正文)的形式收到的,我如何从我们的一个系统发送非常相似的邮件?

我试过

mail -s "Test" [email protected] < mail.txt

但它将整个文本文件放入正文中。

提前感谢 Jens

答案1

根据RFC 5322 互联网消息格式邮件正文从空行之后开始。

您可以使用在第一个空行之后awk打印所有内容,如下所示:mail.txt

awk '/^$/,0' mail.txt

所以你可以做类似的事情

awk '/^$/,0' mail.txt | mail -s "Test" [email protected]

但是,这样输出会以空行开始。如果要避免这种情况,请使用稍微复杂一点的awk范围:

awk 'p; !/./{p=0}/^$/{p=1}' mail.txt | mail -s "Test" [email protected]

这最后一个技巧是我学到的这里

答案2

如果机器sendmail安装了兼容程序(通常应该有,这是使用安装的 postfix 测试的),那么您可以使用如下命令:

sendmail -i -f [email protected] [email protected] <test.mail

例如test.mail如下所示:

From: [email protected]
To: [email protected]
Subject: Test
X-Spam-Flag: NO

some content

您很可能无法重现太多原始电子邮件,因为许多标题只是稍后由邮件服务器本身添加或修改的。

相关内容