Durchsucht den angegebenen Quellordner nach E-Mails mit Dateianlagen, extrahiert und entpackt diese ggf. in den Zielordner
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

41 lines
1.6 KiB

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