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

シェルスクリプトを使用して HTML メールを送信する

まず、メッセージを作成する必要があります。最低限必要なものは、次の 2 つのヘッダーで構成されます:

MIME-Version: 1.0
Content-Type: text/html

... および適切なメッセージ本文:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>

<p>Hello, world!</p>

</body>
</html>

取得したら、適切な情報を mail コマンドに渡すことができます:

body = '...'

echo $body | mail \
-a "From: [email protected]" \
-a "MIME-Version: 1.0" \
-a "Content-Type: text/html" \
-s "This is the subject" \
[email protected]

文字セット、エンコーディング、行の最大長も考慮する必要があるため、これは単純化しすぎた例ですが、基本的にはこれが考え方です。

または、プレーン シェルではなく、Perl または PHP でスクリプトを記述できます。

更新

シェル スクリプトは、基本的に、ファイルを渡す必要があるインタープリターをシェルに指示する shebang と呼ばれる行で始まる Unix の行末を持つテキスト ファイルであり、インタープリターが理解し、実行許可を持つ言語でいくつかのコマンドに従います (Unix では、それはファイル属性)。たとえば、以下を hello-world として保存するとします。 :

#!/bin/sh

echo Hello, world!

次に、実行権限を割り当てます:

chmod +x hello-world

そして、ついに実行できます:

./hello-world

とにかく、これは元の質問とは無関係です。高度なタスクを実行する前に、基本的なシェル スクリプトに慣れておく必要があります。ここに bash に関するいくつかのリンクがあります 、人気のあるシェル:

http://www.gnu.org/software/bash/manual/html_node/index.html

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html


これまでのところ、cmd linux で 2 つの簡単な方法を見つけました

<オール>
  • 昔ながらのメールを使う
  • mail -s "$(echo -e "This is Subject\nContent-Type: text/html")" [email protected] < mytest.html

    <オール>
  • mutt を使用
  • mutt -e "my_hdr Content-Type: text/html" [email protected] -s "subject" < mytest.html


    タグには「sendmail」が含まれているため、それを使用したソリューションは次のとおりです:

    (
    echo "From: [email protected] "
    echo "To: [email protected] "
    echo "MIME-Version: 1.0"
    echo "Content-Type: multipart/alternative; " 
    echo ' boundary="some.unique.value.ABC123/server.xyz.com"' 
    echo "Subject: Test HTML e-mail." 
    echo "" 
    echo "This is a MIME-encapsulated message" 
    echo "" 
    echo "--some.unique.value.ABC123/server.xyz.com" 
    echo "Content-Type: text/html" 
    echo "" 
    echo "<html> 
    <head>
    <title>HTML E-mail</title>
    </head>
    <body>
    <a href='http://www.google.com'>Click Here</a>
    </body>
    </html>"
    echo "------some.unique.value.ABC123/server.xyz.com--"
    ) | sendmail -t
    

    mutt などの sendmail のラッパーを使用すると、この作業が簡単になります。

    mutt -e 'set content_type="text/html"' [email protected] -s "subject" <  message.html
    

    Linux
    1. シェルスクリプトの予期しない動作?

    2. シェル スクリプトを使用して $PATH 変数を反復処理する

    3. 音声録音の送信にモデムを使用する

    1. シェルスクリプトがメールコマンドでハングアップしますか?

    2. シェルスクリプト内から passwd コマンドを使用する

    3. シェル スクリプトを使用してデータベース接続を確認する

    1. Linux シェルスクリプトからメールを送信する

    2. シェルスクリプトを使用して再帰的にフォルダーを作成することは可能ですか?

    3. Linuxシェルスクリプトに新しい行を挿入するには?