質問があります。 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添付ファイルをファイルに再度抽出するツールです。