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

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

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

以下はいくつかの詳細です。

  • セントOS 6.4
  • 毎月アクティブなユーザー:Eメール
  • MTA:サフィックス2.6.6
  • Postfix は交換サーバを介してリレーを実行します。

私が実行しようとしているコマンドは次のとおりです。今日一番見たことは以下の通りです。

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

表示されたコマンドを実行すると、「Content-Type:text / html:そのファイルまたはディレクトリがありません」というエラーメッセージが表示されます。いくつかの更新の後、-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、、および)Toを直接追加する必要があります。ファイルは次のようにする必要があります。SubjectContent-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

家宝と一緒に郵便、便利な方法はありません。任意のヘッダーを挿入する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メールを送ることができます。

関連情報