一部のプロセスによって生成されたテキストファイルがあります。現在のファイルには5つの列と3つのレコードがあります。後で記録の数が増える可能性があります。
これらの行と列をテーブル形式に変換し、メールで送信する最も簡単な方法が必要です。
以下の投稿など、いくつかの投稿を確認しましたが、そのうちの正確な要件を満たす投稿はありません。
電子メールHTMLテーブルの本文と添付ファイルのテキストファイルを送信する
添付ファイルと表形式の電子メール本文を含む電子メールを送信する
マルチパートEメールの実装に関するさまざまな投稿を見ましたが、よく理解していません。より簡単な方法はありますか、それともマルチパートアプローチが唯一の方法ですか?
File :
Col1,col2,col3,col4,col5
Abc,0,5000,4500,True
bcd,1,9000,3000,False
DGF,3,4000,2000,True
このファイルをメールでフォームに送信したいと思います。
答え1
ソースが以下を含むファイルの場合
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>'
実行するには。ファイルを見つけてスクリプトを貼り付けます。実行モードの設定
chmod +x your_script.sh
その後、スクリプトを実行して出力ファイル(例: 出力.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