テキストファイルの本文を表形式で電子メールで送信する

テキストファイルの本文を表形式で電子メールで送信する

一部のプロセスによって生成されたテキストファイルがあります。現在のファイルには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

関連情報