如何在 Linux 上发送原始邮件消息?

Chr*_*ris 6 linux smtp email sendmail

如果我有 MIME 消息的完整内容,Linux 上发送消息的最佳实用程序是什么?MIME 消息将包括完整的标题和邮件正文,例如:

Received: (qmail 32389 invoked by uid 0); 13 Jun 2017 09:24:51 -0400
Date: Tue, 13 Jun 2017 09:24:51 -0400
From: root@test.server.com
To: test@test.com
Subject: Test Email
Message-ID: <593fe7a3.IgSR+/BLy+NYXlVZ%root@test.server.com>
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

The mail body goes here
Run Code Online (Sandbox Code Playgroud)

我希望能够将上述内容提供给命令行实用程序,然后该实用程序将完全“按原样”重新处理消息,而无需解析诸如发件人、主题等字段。它应该通过指定的外部 SMTP 发送消息服务器(不是本地服务器的邮件队列)。

我可以为此目的使用什么命令行实用程序?

AnF*_*nFi 7

您可以使用sendmailpostfix/exim/... 提供的或“发送邮件看起来相似”。

/usr/sbin/sendmail -i -- $recipients < message_file
Run Code Online (Sandbox Code Playgroud)

-i - 不要特别对待带前导点的行


您可以使用更奇特的“sendmail 看起来相似”(例如由 提供msmtp)直接通过另一个 smtp 主机发送,而无需“系统范围”配置。
msmtp在 debian 中分发,因此它很可能包含在其他 linux 发行版中。

https://packages.debian.org/stretch/msmtp

包:msmtp (1.6.6-1)
轻型 SMTP 客户端,支持服务器配置文件

msmtp 是一个 SMTP 客户端,可用于从 Mutt 和可能的其他 MUA(邮件用户代理)发送邮件。它将邮件转发到 SMTP 服务器(例如在免费邮件提供商处),后者负责最终的递送。使用配置文件,它可以轻松配置为使用具有不同配置的不同 SMTP 服务器,这使其成为移动客户端的理想选择。