CentOSサーバーからユーザーにHTMLメールを送信しようとしています。長期的には、ユーザーにレポートを送信するコマンドを実行するCOBOLプログラムを構築します。
ここにいくつかの詳細があります。
実行しようとしたコマンドについては。私が今日最も多く見たのは以下のものです。
$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html
表示されたコマンドを実行すると、「Content-Type:text/html:No such file or directory」というエラーが表示されます。特定の更新後、Content-Typeの指定のフラグとして-aを許可しなくなったと確信しています。
最初の行として、実際のbodytext.htmlファイルに 'Content-Type:text/html'を追加してみました。 HTMLメールを送信するために何ができるか途方に暮れています。私が見つけたソースのいくつかは、mailxとpostfixがHTMLメールを正しく送信できないと言っています。うまくいかない場合がありますが、そうでない場合は、他のMAUおよびMTAテクノロジに対するあなたの考えを知りたいですか?
生成されたテキストファイルを完全に制御しているように見えるので、/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
のような欠落しているが必要なヘッダーを追加します。
mailx
のマニュアルも読みましたか、特に-a
オプション?
-a file
指定されたファイルをメッセージに添付します。
CentOSがこのバージョンのmailx
を使用しているため、 Gillesの回答 から:
家宝 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メールを送信できます。