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
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
|
|
|