Anexe arquivos para envio de e-mail que são o conjunto de resultados do comando find

Anexe arquivos para envio de e-mail que são o conjunto de resultados do comando find

Usando findo comando, obtive vários arquivos. Agora quero adicionar todos esses arquivos como anexo de email. Como adiciono esses arquivos como anexo em um único e-mail?

Quero implementar isso no script. Preciso usar o loop for e armazenar os arquivos em variáveis ​​de array?

EX: obtive resultados de 3 arquivos da seguinte forma

find . -type f -name "sum*"

resultado:

sum123.pdf
sum234.pdf
sum453.pdf

Responder1

Você pode fazer isso muttassim:

mutt -a $(find . -type f -name "sum*")

Se você quiser fazer isso de forma não interativa, tente

mutt -s "Subject" -a $(find . -type f -name "sum*") -- [email protected] < /dev/null

Se muttnão estiver instalado,aquié um exemplo com mailmais ferramentas (por exemplo mpack)!

Então deveria ser algo como

#!/bin/bash
# This needs heirloom-mailx
from="[email protected]"
to="[email protected]"
subject="Some fancy title"
body="This is the body of our email"

declare -a attargs
for att in $(find . -type f -name "sum*"); do
  attargs+=( "-a"  "$att" )  
done

mail -s "$subject" -r "$from" "${attargs[@]}" "$to" <<< "$body"

Para um ambiente sh sem declaração:

#!/bin/sh
# This needs heirloom-mailx
from="[email protected]"
to="[email protected]"
subject="Some fancy title"
body="This is the body of our email"

attargs=""
for att in $(find . -type f -name "sum*"); do
  attargs="${attargs}-a $att "  
done
attargs=${attargs::-1}

mail -s "$subject" -r "$from" ${attargs[@]} "$to" <<< "$body"

Responder2

ATTACH_FILE=`ls $HOME/data/*log.txt`
rmdat $HOME/file.dat
rmdat $HOME/sendemail.dat
ATTACH_FILE="$(echo $ATTACH_FILE | sed 's/ /\\n/g')"
export FILE=$HOME/file.dat
export FILE1=$HOME/sendemail.dat
echo $ATTACH_FILE >> $FILE
ATT_FILES=""
while read BP_fl
do

ATT_FILES=$ATT_FILES" uuencode  $BP_fl $(basename $BP_fl) ;"

done < $HOM/file.dat

echo '( echo "Hi" ; ' >> $FILE1
echo   $ATT_FILES >> $FILE1 
echo ') | mailx -m -s " automation test email" [email protected] ' >> $FILE1

chmod 777 $FILE1
. $FILE1

informação relacionada