Adjunte archivos para enviar correo que sean el conjunto de resultados del comando de búsqueda

Adjunte archivos para enviar correo que sean el conjunto de resultados del comando de búsqueda

Al usar findel comando obtuve varios archivos. Ahora quiero agregar todos estos archivos como archivos adjuntos de correo. ¿Cómo agrego estos archivos como archivos adjuntos en un solo correo?

Quiero implementar esto en script. ¿Necesito usar un bucle for y almacenar los archivos en variables de matriz?

EX: Obtuve resultados de 3 archivos de la siguiente manera

find . -type f -name "sum*"

resultado:

sum123.pdf
sum234.pdf
sum453.pdf

Respuesta1

Puedes hacerlo muttasí:

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

Si quieres hacerlo de forma no interactiva, prueba

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

Si muttno está instalado,aquí¡Es un ejemplo con maily más herramientas (por ejemplo mpack)!

Entonces debería 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 un entorno sh sin declarar:

#!/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"

Respuesta2

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

información relacionada