postfix 2.6.6 と centOS 6.4 で mailx を使用して HTML を送信する

postfix 2.6.6 と centOS 6.4 で mailx を使用して HTML を送信する

CentOS サーバーからユーザーに HTML メールを送信しようとしています。 最終的には、ユーザーにレポートを送信するコマンドを実行する COBOL プログラムを構築する予定です。

ここにいくつかの詳細があります。

  • 6.4 の
  • MAU : メールx
  • MTA: Postfix 2.6.6
  • Postfix は Exchange サーバーを介してリレーを実行しています。

私が実行しようとしたコマンドについてですが、今日最も多く目にしたのは次のコマンドです。

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html

示されたコマンドを実行すると、「Content-Type: text/html: そのようなファイルまたはディレクトリはありません」というエラーが表示されます。特定の更新以降、Content-Type 指定のフラグとして -a が許可されなくなったことは間違いありません。

また、実際の bodytext.html ファイルの一番最初の行に 'Content-Type: text/html' を追加してみました。HTML メールを送信するにはどうすればいいのか、まったくわかりません。私が見つけた情報源の中には、mailx と postfix では HTML メールを正しく送信できないというものがあります。そうでないことを願いますが、もしそうなら、他の MAU や MTA テクノロジについてどう思われるか教えてください。

答え1

生成されたテキスト ファイルを完全に制御できるようなので、最も簡単でおそらく最も移植性の高い方法は、/usr/sbin/sendmail直接関与することです。

/usr/sbin/sendmail -t < complete-mail.txt

これには、すべての重要なヘッダー ( From、、、および)を自分で追加する必要があります。ファイルは次のようになります。ToSubjectContent-Type

From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html

<html>…</html>

Postfix は、 のような不足しているが必要なヘッダーを追加しますDate

答え2

マニュアルを読んだことがありますか?mailx特に-aオプションは?

-a file 指定されたファイルをメッセージに添付します。

からジルの答えCentOS では次のバージョンの を使用しているためですmailx:

家宝とともにメールx便利な方法はありません。任意のヘッダーを挿入する 1 つの方法は、editheaders=1 を設定し、外部エディター (スクリプトでも可) を使用することです。

## Prepare a temporary script that will serve as an editor.
## This script will be passed to ed.
temp_script=$(mktemp)
cat <<'EOF' >>"$temp_script"
1a
Content-Type: text/html
.
$r test.html
w
q
EOF
## Call mailx, and tell it to invoke the editor script
EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF
~e
.
EOF
rm -f "$temp_script"

Postfix は確かに HTML メールを送信できます。

関連情報