Unix で HTML メールが動作しないのはなぜですか?

Unix で HTML メールが動作しないのはなぜですか?

ある Unix サーバーから別の Unix サーバーに移行しています。

古いサーバー
$ uname -a
Linux <redacted> 2.6.9-89.31.1.ELsmp #1 SMP Mon Oct 4 21:53:22 EDT 2010 i686 i686 i386 GNU/Linux
新しいサーバー
$ uname -a
Linux <redacted> 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux

以下のコマンドを使用すると、古いサーバーではメールが HTML コンテンツとして送信されましたが、新しいサーバーでは同じコマンドでプレーンなメールのみが送信されます。

  • ここでの選択肢は何ですか?
  • これを機能させるにはどうすればよいですか?
私の命令
$ echo "<b>HTML Message <i>goes</i> here</b>" | mail -s "$(echo -e "This is the subject\nContent-Type: text/html")" [email protected] [email protected]

答え1

問題はおそらく、新しい/bin/mailプログラムが独自の Mime ヘッダーをメールに追加し、ヘッダーContent-Type: text/htmlの末尾に追加したハックを上書きしていることですSubject:

簡単な解決策は、 をバイパスして、 ( を使用している場合でも)mail直接 に進むことです。コマンドを次のように置き換えます。sendmailpostfix

sendmail -t <<!
From: [email protected]
To: [email protected]
Subject: This is the subject
MIME-Version: 1.0
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<b>HTML Message <i>goes</i> here</b>
!

sendmail が受け入れない場合は-t、そのオプションを送信先のアドレスに置き換えます (例: ) [email protected]

関連情報