web-dev-qa-db-ja.com

テキスト形式のファイルから表形式の本文をメールで送信

何らかのプロセスで生成されたテキストファイルがあります。現在、ファイルには5つの列と3つのレコードがあります。レコード数は後で増加する可能性があります。

これらの行と列を表形式に変換してメールで送信する最も簡単な方法が欲しいのです。

以下のようないくつかの投稿をすでに確認しましたが、私の正確な要件を満たしているところはありません。

メールHTMLテーブルの本文と添付テキストファイルを送信

添付ファイル付きのメールとテーブル形式のメール本文を送信

マルチパートメールを実装するためのさまざまな投稿を見ましたが、あまり理解できませんでした。より簡単な方法はありますか、それともマルチパートの方法が唯一のアプローチですか?

File :
Col1,col2,col3,col4,col5
Abc,0,5000,4500,True
bcd,1,9000,3000,False
DGF,3,4000,2000,True

このファイルを表としてメールで送りたいです。

1
Amit

ソースが次の内容のファイルである場合

Col1,col2,col3,col4,col5
Abc,0,5000,4500,True
bcd,1,9000,3000,False
DGF,3,4000,2000,True

以下のスクリプトは、テーブルを含むhtmlファイルを作成します

#!/bin/bash
IFS=$','
first=1
echo '<table>'
while read -r cola colb colc cold colf; do
    [[ $first == 1 ]] && element=th || element=td
    first=0
    echo "<tr><$element>$cola</$element><$element>$colb</$element><$element>$colc</$element><$element>$cold</$element><$element>$colf</$element></tr>"
done < $1
echo '</table>'

実行するには、。shファイルを作成し、スクリプトを中に貼り付ける必要があります。モードを実行に設定します

chmod +x your_script.sh

次に、出力をファイルに送信するスクリプトを実行します(例:output.html

./your_script.sh your_source_file > output.html

完了すると、出力は次のようになります

enter image description here

メールを送信するには、以下を使用できます

sendemail -s stmp:port -xu user -xp pass -f account_from -t destination_account -u subject -m "your_html_message" -o message-header="From: your name <account_from>" -o message-content-type=html -o message-charset=UTF-8
1
BANJOSA