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: [email protected]
To: [email protected]
Subject: Test Email
Message-ID: <593fe7a3.IgSR+/BLy+NYXlVZ%[email protected]>
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
上記をコマンドラインユーティリティにフィードして、送信者や件名などのフィールドを解析する必要なく、メッセージを「そのまま」再処理します。指定された外部SMTPを介してメッセージを送信する必要がありますサーバー(ローカルサーバーのメールキューではありません)。
この目的に使用できるコマンドラインユーティリティは何ですか?
sendmail
またはpostfix/exim/...によって提供される「sendmail look alike」を使用できます。
/usr/sbin/sendmail -i -- $recipients < message_file
-i
-ドットが先行する行を特別に扱いません
よりエキゾチックな「sendmail look alike」(たとえば、msmtp
によって提供される)を使用して、「システム全体」の設定なしで別のsmtpホストを介して直接送信できます。msmtp
はdebianで配布されているため、他のLinuxディストリビューションに含まれる可能性があります。
https://packages.debian.org/stretch/msmtp
パッケージ:msmtp(1.6.6-1)
サーバープロファイルをサポートする軽量SMTPクライアントmsmtpは、Muttおよびおそらく他のMUA(メールユーザーエージェント)からメールを送信するために使用できるSMTPクライアントです。最終的な配信を処理するSMTPサーバー(無料のメールプロバイダーなど)にメールを転送します。プロファイルを使用すると、さまざまな構成のさまざまなSMTPサーバーを使用するように簡単に構成できるため、モバイルクライアントに最適です。
残念ながら、sendmail
およびmailx
では、別のSMTPサーバーを指定できません。しかし、Andrzejからの回答をsshと組み合わせることができます。私は-t
オプションを使用して、読み取られているファイル/データから受信者を読み取ります。
cat <messagefile> | ssh user@mailhost /usr/sbin/sendmail -i -t
<messagefile>
はMIMEメッセージを含むファイルで、mailhostはSMTPサーバーです。 user
は、SMTPサーバー上のログインIDです。
s-nail はmailx
の大幅に強化された代替手段であり、他の多くの改良点の中で、コマンドラインでSMTPサーバーを指定できるようになっています。
例えば.
s-nail -S "smtp=smtp://remote-server:port" < message.txt
暗号化されたSMTP(STARTTLS、SMTPS、またはSUBMISSIONを使用)およびSMTP AUTHもサポートします。見る man s-nail
詳細については。
s-nail
は、いくつかのLinuxディストリビューション用に事前にパッケージ化されています(たとえば、debian apt-get install s-nail
。