У меня проблема. Мне нужно написать сценарий, который найдет любой файл, созданный 1 день назад, а затем отправит его по электронной почте на определенный почтовый адрес со вторника по воскресенье в 2 часа ночи?
Проблема в том, что мой сценарий находит 3 правильных файла, но либо отправляет 3 разных файла. электронные письма с одним вложением или отправьте одно письмо без вложений. Как я могу отредактировать его, чтобы отправлять несколько вложений в одном письме? Кажется, каждому файлу нужен «uuencode» с ним, поэтому попробовал объединить «uuencode» с «именем файла» а затем добавьте эту переменную в команду ssmpt. Ни одна из 2 версий толком не работает.
Как я могу написать обычное выражение, чтобы все найденные файлы отправлялись по электронной почте с использованием одного электронного письма. Мой текущий скрипт просто отправляет письмо без вложений или по одному файлу на каждое письмо.
Пожалуйста, помогите.
Вот как выглядит мой сценарий:
Версия 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@email.com\nSubject:performance of teams on ${dt};"|(cat - && ${valueTotal};)|/usr/sbin/ssmtp email@email.com
Версия 2: отправляет 3 сообщения электронной почты с одним вложением в каждом:
#!/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@email.com\nSubject:performance of teams on ${dt}; mail ${Count} of 3\n"|(cat - && uuencode $i;)|/usr/sbin/ssmtp to:email@email.com
done