GNU/Linux >> Linux の 問題 >  >> Linux

Linuxの「mail」コマンドを使用してHTMLメールを送信する方法は?

mail -s "subject" [email protected] <test.html
は機能しますが、プレーンテキストの電子メールでのみ機能します。

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

承認された回答:

mailにはさまざまなバージョンがあります その周り。 mail -s subject [email protected] [email protected] <bodyを超える場合 (送信の場合、これがすべてPOSIXの保証であり、-s 昔は存在しませんでした)、コマンドラインオプションが異なる傾向があります。ヘッダーを追加するのは必ずしも簡単ではありません。

  • いくつかのmailx 実装、例えばmailutilsから UbuntuまたはDebianのbsd-mailx 、そのためのオプションがあるので、それは簡単です。

    mailx -a 'Content-Type: text/html' -s "Subject" [email protected] <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" [email protected] <<EOF
    ~e
    .
    EOF
    rm -f "$temp_script"
    
  • 一般的なPOSIXmailxを使用 、ヘッダーを取得する方法がわかりません。

mailを使用する場合 またはmailx 、覚えておいてください

  • これは、特定のLinuxディストリビューション内でも移植性がありません。たとえば、UbuntuとDebianの両方に、mailの代替手段がいくつかあります。 およびmailx
  • メッセージを作成するときは、mail およびmailx ~で始まる行を処理します コマンドとして。テキストをmailにパイプする場合 、このテキストに~で始まる行が含まれないように調整する必要があります 。

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

mutt -e 'set content_type=text/html' -s 'hello' '[email protected]' <test.html

または、 sendmailを呼び出すこともできます 直接。 sendmailにはいくつかのバージョンがあります そこにありますが、それらはすべてsendmail -tをサポートしています メールから受信者のリストを読んで、最も簡単な方法でメールを送信します。 (すべてがBcc:をサポートしているわけではないと思います 。)ほとんどのシステムでは、sendmail 通常の$PATHにはありません 、/usr/sbinにあります または/usr/lib

cat <<'EOF' - test.html | /usr/sbin/sendmail -t
To: [email protected]
Subject: hello
Content-Type: text/html

EOF

Linux
  1. コマンドラインを使用してLinuxを再起動する方法

  2. Linux で Mailx を使用して外部ユーザーにメールを送信する方法

  3. コマンド ラインから電子メールを送信するにはどうすればよいですか?

  1. mailコマンドを使用してLinuxターミナルまたはスクリプトから電子メールを送信する

  2. Linuxでmailxコマンドを使用して外部SMTPサーバー経由でメールを送信するにはどうすればよいですか?

  3. Linux で mail コマンドを使用してファイルを添付するには?

  1. Linux上の外部SMTPサーバーを使用してコマンドラインからメールを送信する

  2. Linuxのコマンドラインからメールを送信するための9つのmail/mailxコマンドの例

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?