
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
を直接追加する必要があります。ファイルは次のようにする必要があります。Subject
Content-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メールを送ることができます。