何らかのプロセスで生成されたテキストファイルがあります。現在、ファイルには5つの列と3つのレコードがあります。レコード数は後で増加する可能性があります。
これらの行と列を表形式に変換してメールで送信する最も簡単な方法が欲しいのです。
以下のようないくつかの投稿をすでに確認しましたが、私の正確な要件を満たしているところはありません。
マルチパートメールを実装するためのさまざまな投稿を見ましたが、あまり理解できませんでした。より簡単な方法はありますか、それともマルチパートの方法が唯一のアプローチですか?
File :
Col1,col2,col3,col4,col5
Abc,0,5000,4500,True
bcd,1,9000,3000,False
DGF,3,4000,2000,True
このファイルを表としてメールで送りたいです。
ソースが次の内容のファイルである場合
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
完了すると、出力は次のようになります
メールを送信するには、以下を使用できます
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