メールの送信にはmuttを使用しています。
mutt -s "Test" -e "Content-Type: text/html" [email protected] < message.html
更新メールをHTML形式で送信します。テキストバージョンとhtmlバージョンの両方を含むマルチパートとしてメールを送信したいと思います。
環境:RedHat Enterprise Linux 5、mutt
電子メールの件名、および電子メールの本文のHTMLバージョンとテキストバージョンが指定されている場合、Linuxでこのようなマルチパートメッセージを作成するにはどうすればよいですか?
RFC 2046 に記載されているように、タイプ_multipart/alternative
_のメッセージを作成します。
From:Example Company <[email protected]> To:Joe User <[email protected]> Date:Sat、21 May 2011 17:40: 11 +0300 件名:マルチパートメッセージの例 MIME-バージョン:1.0 コンテンツタイプ:マルチパート/代替; border = asdfghjkl -asdfghjkl Content-Type:text/plain; charset = utf-8 みなさん、こんにちは! -asdfghjkl Content-Type:text/html; charset = utf-8 <!DOCTYPE html> <body> <p>みなさん、こんにちは!</ p> </ body> -asdfghjkl-
正確な構文については、 RFC 2046 および RFC 5322 を参照してください。
Muttを使用して、ステップ1で作成したマルチパートメールをLinuxプロンプトから送信できますか?
適切なContent-Typeヘッダーを設定する方法を見つけた場合。 (あなたの例では、_-e
_を使用していますが、muttはさまざまな目的で_-e
_を使用しています。_-e "my_hdr Content-Type: ..."
_でも元のテキスト/プレーンヘッダーはそのままです。)
生成されたメールはsendmail
から直接送信することをお勧めします。ヘッダーは自分で作成する必要があります–例を参照してください。日付にはstrftime("%a, %d %b %Y %T %z")
を使用し、境界にはランダムな英数字の文字列を使用します。次に、ヘッダーを含む準備されたメッセージを_sendmail -i -t
_にパイプします。
_sendmail -i -t < above-example.txt
_
(_-t
_オプションは、「To:行から受信者を取得する」ことを意味します。代わりに_sendmail -i [email protected]
_を使用することもできます)
https://github.com/shivylp/mailprod をご覧ください。私はこの小さなPythonユーティリティ/ライブラリを開発しました。大きなメールにコマンドラインを使用することは信頼できるオプションではないようだったからです。mailprodcliを使用すると、mailprodcli template.xml --send
と言うだけで簡単です。テンプレートの例画像を含む.xmlは次のように単純です。
<?xml version="1.0" encoding="UTF-8"?>
<mail>
<from>[email protected]</from>
<to>[email protected]</to>
<to>[email protected]</to>
<body type="text/html">
<![CDATA[<html>
<b>Neat!</b><br><center><img src="cid:sample"></center>
</html>]]>
</body>
<body type="image" src="sample.png" id="sample" />
</mail>