42 lines
1.6 KiB
Bash
42 lines
1.6 KiB
Bash
#!/bin/sh
|
|
# /volume1/homes/admin/script/MailAttachmentParser.sh
|
|
# durchsucht den angegebenen Quellordner nach E-Mails mit 7z-Dateianlage, extrahiert und entpackt diese in den Zielordner
|
|
# https://www.synology-forum.de/showthread.html?103185-Mail-an-NAS-und-den-Anhang-verwerten&p=833583&viewfull=1#post833583
|
|
|
|
# PARAMETER ANPASSEN:
|
|
MAILDIR="/volume1/homes/admin/.Maildir/cur" # Quellverzeichnis
|
|
DESTDIR="/volume1/homes/admin/dump/" # Zielverzeichnis
|
|
DELDIR="/volume1/homes/admin/.Maildir/.Trash/cur" # Löschverzeichnis
|
|
DelMail="no" # "yes" um abgearbeite E-Mails zu löschen
|
|
munpack="./mailunpack" # Pfad zu munpack
|
|
unzipPW="" # Kennwort zum entpacken
|
|
|
|
#----------------------------------------------------------
|
|
|
|
for i in $(find "$MAILDIR" -type f)
|
|
do
|
|
filename=$(basename $i)
|
|
if ( cat "$i" | grep -q "base64" ) && ( cat "$i" | egrep -q "name=.*\.7z" ) ; then # prüfen, ob "base64" und "name=*.7z" in der Mail vorkommen
|
|
|
|
# temporäres Arbeitsverzeichnis erstellen
|
|
work_tmp=$(mktemp -d -t tmp.XXXXXXXXXX)
|
|
trap 'rm -rf "$work_tmp"; exit' EXIT
|
|
|
|
# Mail extrahieren:
|
|
cp $i $work_tmp/$filename
|
|
$munpack $work_tmp/$filename -C $work_tmp
|
|
|
|
# Archiv nach Zielordner entpacken
|
|
for z in $(find "$work_tmp" -type f -name "*.7z")
|
|
do
|
|
7z e $z -o$DESTDIR -p${unzipPW} -aou
|
|
done
|
|
fi
|
|
if [ $DelMail = "yes" ]; then
|
|
mv $i $DELDIR
|
|
fi
|
|
rm -rf "$work_tmp"
|
|
done
|
|
|
|
exit
|