Linux 'mail'コマンドを使用してHTMLメールを送信するには?

Linux 'mail'コマンドを使用してHTMLメールを送信するには?

mail -s "subject" [email protected] <test.html うまくいきますが、プレーンテキストの電子メールにのみ適用されます。

Linuxコマンドを使用してHTMLメールを送信する正しい方法は何ですかmail

ベストアンサー1

周辺にはさまざまなバージョンがありますmail。超越する時mail -s subject to1@address1 to2@address2 <body(送ればそれだよ)POSIX保証 --s存在しません。過去)、コマンドラインオプションが異なる場合が多いです。追加のヘッダーを追加することは必ずしも簡単ではありません。

  • mailx以下のいくつかの実装を通じてmailutilsUbuntuからまたはDebianbsd-mailx、オプションがあるので簡単です。

    mailx -a 'Content-Type: text/html' -s "Subject" to@address <test.html
    
  • とともに家族家宝 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"
    
  • 一般とともにPOSIXmailx、タイトルを取得する方法がわからない。

使用したりmail覚えてmailxいる場合

  • これは、特定のLinuxディストリビューション内でも移植可能ではありません。たとえば、UbuntuとDebianにはさまざまなmail選択肢がありますmailx
  • メッセージを作成するときから始まる行はmailコマンドmailxと見なされます~。にテキストをパイプする場合は、mailテキストにで始まる行が含まれないようにソートする必要があります~

とにかくソフトウェアをインストールするには、mail//よりMail予測可能なものをインストールすることをお勧めしますmailx。例えば、愚か。 Muttを使用すると、次のオプションを使用して入力にほとんどのヘッダーを提供できます-Hしかし、Content-Type、muttオプションで設定する必要があります。

mutt -e 'set content_type=text/html' -s 'hello' 'to@address' <test.html

または電話してもいいです。sendmailまっすぐ。複数のバージョンがありますが、sendmailすべてsendmail -t電子メールから受信者のリストを読む最も簡単な方法で電子メールを送信することをサポートしています。 (私はそれらがすべてそれをサポートしているとは思わないBcc:。)ほとんどのシステムではsendmail一般的なシステムではない$PATHが、または。/usr/sbin/usr/lib

cat <<'EOF' - test.html | /usr/sbin/sendmail -t
To: to@address
Subject: hello
Content-Type: text/html

EOF

おすすめ記事