uuencodeを使用して1つの電子メールに複数の添付ファイルを送信する方法

uuencodeを使用して1つの電子メールに複数の添付ファイルを送信する方法

質問があります。 1日前に生成されたすべてのファイルを見つけて、火曜日から日曜日の午前2時に特定のメールアドレスに電子メールを送信するスクリプトを作成する必要がありますか?

問題は、私のスクリプトが3つの正しいファイルを見つけましたが、単一の添付ファイルを含む3つの異なる電子メールを送信するか、添付ファイルなしで1つの電子メールを送信することです。 1 つのメールに複数の添付ファイルを送信するにはどうすればよいですか?すべてのファイルには「uuencode」が必要なようです。「uuencode」を「filename」にリンクしてから、変数をssmptコマンドに追加してみてください。どちらのバージョンも実際には動作しません。

1つの電子メールを使用して見つかったすべてのファイルを電子メールで送信する正規表現を作成するにはどうすればよいですか?現在、スクリプトは添付ファイルのない電子メールのみを送信するか、電子メールごとに1つのファイルのみを送信します。

助けてください。

私のスクリプトは次のとおりです

バージョン1:添付ファイルなしで1つの電子メールを送信する:

#!/bin/bash
dt=$(date --date yesterday "+%Y-%m-%d")
result="performance-team*-$dt.txt"

arr=()
arr=($(find /root/Desktop/fileNAme -type f -name "${result}"))


for i in "${arr[@]}"
do 
    value=" uuencode -e $i $(basename $i);"
    valueTotal=$valueTotal$value;
done

echo -e "to:[email protected]\nSubject:performance of teams on ${dt};"|(cat - && ${valueTotal};)|/usr/sbin/ssmtp [email protected]

バージョン2:それぞれ添付ファイルを含む3つのEメールを送信します。

#!/bin/bash
dt=$(date --date yesterday "+%Y-%m-%d")
result="performance-team*-$dt.txt"

arr=()
arr=($(find /root/Desktop/fileNAme -type f -name "${result}"))

Count=0
for i in "${arr[@]}"
do 
    Count=$((Count+1))
    echo -e "to:[email protected]\nSubject:performance of teams on ${dt}; mail    ${Count} of 3\n"|(cat - && uuencode $i;)|/usr/sbin/ssmtp to:[email protected]
done

ベストアンサー1

uuencode作業に適したツールではありません。 (約25年前は正しいツールでしたが、MIME標準に置き換えられてから古くなっています。)

私のDebianディストリビューションでは、スクリプトはmailこのコマンドを直接使用できます。マニュアルページにはmail次の内容が記載されています。- 書類1個指定したファイルをメッセージに添付する」。以下は、MIMEを使用してエンコードされた3つの添付ファイルを送信する例です。

echo 'Here is my email' |
    mail -s 'Test message' -a /etc/hosts -a /etc/group -a /etc/motd [email protected]

次の部分を確認する時間はありませんでしたが、そうです。munpack逆変換を実行するツール、つまり電子メールからMIME添付ファイルをファイルに再度抽出するツールです。

おすすめ記事