Alle E-Mail Anhänge vom Postfach Gmail herunterladen TOOL? Docker?

driftkingisback

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
122
Punkte für Reaktionen
4
Punkte
18
Hallo, vielleicht könnt ihr mir helfen, ich benötige eine Software oder das ich ein Cronjob erstelle und ausführen lass ,
dass alle Emails mit Anhang, der Anhang Lokal oder auf der Nas gespeichert wird.

Ich bekomme so viele Rechnungen heute per Email, dass ich diese dann alle in einem Ordner habe und mit synOCR drüberlaufen lasse und umbennenn.

Ich habe schon verschiede Python Skripte geshenen aber so gut kenne ich mich nicht aus, vielleicht habt ihr eine Lösung wie ich das realisieren kann...
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154

Amigamaverik

Benutzer
Mitglied seit
19. Mai 2022
Beiträge
72
Punkte für Reaktionen
11
Punkte
14
warum nicht einfach die Synology die Mail holen lassen, per webmail?
 

driftkingisback

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
122
Punkte für Reaktionen
4
Punkte
18
Vieleln Dank für eure Antworten , irgendwi ebekomme ich das nicht hin, ja ich brauche einfach nur vom Jahr 2022 und 2023 die ganzen Rechnungen und Angebote die ich per Email bekommen habe..gibts da ein Trick oder Software, über Hilfe freue ich mich, gerne auch per PN
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Für so was kannst du auch paperless_ngx nutzen. Das kann dir Anhänge abrufen und gleich im digitalen Ordnersystem angelegen und sogar (mit etwas Übung) automatisch kategorisieren
 

driftkingisback

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
122
Punkte für Reaktionen
4
Punkte
18
ja das hab ich schon gehört möchte aber keine eigentständige libary haben, das system ordnet sich alles dann in verschiedene Ordner.
Mit über 20 unterordner.

Dafür muss man das System komplett nutzen, aber trotzdem danke , es muss doch sowas einfaches geben
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Hast du dir meine Links angeguckt? Das sah jetzt nicht wirklich kompliziert aus.
 

driftkingisback

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
122
Punkte für Reaktionen
4
Punkte
18
ich hatte mir schon deine links angeschaut und selber probiert aber bekomme es leider nicht hin
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Was war denn das Problem? Gab es Fehlermeldungen? Ich kenn kein Tool was es sonst erledigen könnte.
 

driftkingisback

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
122
Punkte für Reaktionen
4
Punkte
18
Hast du das Tool, dann würde ich das versuchen zu installieren und würde mich freuen wenn du mir beim einrichten helfen könntest.
Es geht nur das ich immer wenn ich Emails bekomme mit Anhang die in einen seperaten Ordner gehen
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.604
Punkte für Reaktionen
758
Punkte
154
Wie oben geschrieben, ich nutze sowas nicht. Ich nutze auch kein Gmail. Aber mich würde es wundern, wenn es dafür keine Lösung gibt.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.264
Punkte für Reaktionen
923
Punkte
174
Wenn es nicht automatisiert sein muss: Für Thunderbird gibt es entsprechende Plugins, mit denen aus selektierten Mails die Attachments per Rechtsklick gespeichert werden können.

Ich denke es wäre noch erträglich, wenn man einmal am Tag die Mails selektiert und per Kontextmenü die Anhänge speichert.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Wenn es nicht automatisiert sein muss:
oder jeder andere Email Client der mehrere Konten erlaubt. Selbst mit Outlook klappt das: ein Konto für die Source(Provider mit Pop3 oder Imap) , ein Konto das Target (z.B. Syno Mailserver) und dann ganz einfach die Mails per Drag'n Drop oder Regel verschieben
 

abrocksi

Benutzer
Mitglied seit
27. Dez 2013
Beiträge
240
Punkte für Reaktionen
79
Punkte
28
Hi driftkingisback,

ich nutze attachment-downloader von James Ridgway. Siehe GitHub: Link

Über die Konsole eine virtuelle Umgebung unter /homes/admin einrichten. Dort pip install attachment-downloader installieren und folgendes Script anpassen bzw. dann ausführen:

downloader_imap.sh
#!/bin/bash # Zeitverzögerung wegen anderer Jobs aus synOCR sleep 780 # Pfad zur virtuellen Umgebung venv_path=/var/services/homes/admin/ # Name der virtuellen Umgebung venv_name=downloader # Aktivieren Sie die virtuelle Umgebung source "${venv_path}${venv_name}/bin/activate" # Mailordner scannen, Mailanhänge exportieren, Mails löschen attachment-downloader --host=imap.1und1.de --username=abc@example.com --password="1234567" --imap-folder="inbox" --output="/volume1/homes/..." --delete #Virtuelle Umgebung deaktivieren deactivate

Das Script rufe ich alle 10 Minuten über den Aufgabenplaner auf.

cheers,
abrocksi
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.206
Punkte
234
attachment-downloader --host=imap.1und1.de --username=abc@example.com --password="1234567" --imap-folder="inbox" --output="/volume1/homes/..." --delete
Man sollte dazu sagen, dass damit die entsprechenden Mails gelöscht werden‼️


Da so ein Feature eh noch auf der synOCR ToDo-Liste steht, habe ich mich mal etwas damit beschäftigt. Das nachstehende Skript ist dabei herausgekommen und kann eigenständig verwendet werden. Leider lädt die Pythonbiliothek alle Dateianhänge. Deshalb wird vom User im Skript eine Liste mit allen gewünschten Dateiextension angegeben. Unerwünschte Dateien werden im Anschluss gelöscht.
Beim ersten Aufruf werden alle Mails der Vergangenheit im angegebenen IMAP-Ordner durchsucht. Ab dem 2. Aufruf nur die seit dem letzten Lauf (oder man definiert schon vor dem 1. Lauf einen Startzeitpunkt).

Bitte verwende idealerweise einen einen leeren Zielordner.

Aktuelle Version: https://github.com/geimist/mail_attachments_downloader
Du brauchst nur die Parameter im Skript anpassen und im Aufgabenplaner den Pfad zum Skript angeben.
/bin/bash /volume…/pfad/zu/skript.sh

Darüberhinaus sind keine Vorbeitungen nötig (Gmail braucht wahrscheinlich ein App-Kennwort).

Bash:
#!/bin/bash
# Mail attachement downloader
# /volume3/DEV/get_mail_attachments.sh
# Python library: https://github.com/jamesridgway/attachment-downloader

# ACHTUNG: Alle Dateien, die nicht einer Dateierweiterung in $file_extensions_user entspricht, werden gelöscht,
# da attachment-downloader zunächst alle Mailanhänge herunter lädt

# lokales Zielverzeichnis:
DOWNLOAD_FOLDER="/volume3/synOCR/input"

# Gewünschte Dateiendungen definieren (Groß- und Kleinschreibung wird ignoriert - Beispiel: ("jpg" "png" "pdf") ):
file_extensions_user=("pdf")

# IMAP Host:
HOST=""

# IMAP Username:
USERNAME=""

# IMAP Password:
PASSWORD=""

# IMAP Folder to extract attachments from:
IMAP_FOLDER="inbox"

# --------------------- optionale Parameter --------------------
# Regex, mit der der Betreff übereinstimmen muss:
SUBJECT_REGEX=""

# Startzeitpunkt für die Suche (Weltzeit!):
# leer lassen, um keine Limit in der Vergangenheit zu setzen
# wird am Ende des Skriptes auf die aktuelle Zeit gesetzt um beim erneuten Aufruf als Startzeit zu dienen
# z.B. "2021-02-06T13:00:00"
DATE_AFTER=""

# Endzeitpunkt für die Suche (Weltzeit!):
# leer lassen, um alle Mails bis 'JETZT' zu berücksichtigen
# z.B. "2021-02-06T13:25:00"
DATE_BEFORE=""

# Vorlage für Dateinamen (jinja2):
# z.B. "{{date}}/{{ message_id }}/{{ subject }}/{{ attachment_name }}"
FILENAME_TEMPLATE=""

# heruntergeladene Mails löschen (true / false)
DELETE="false"

# IMAP Ordner, um Mails vor dem Löschen zu kopieren:
DELETE_COPY_FOLDER=""

# speziellen imap server port verwenden (defaults to 993 for TLS and 143 otherwise)
PORT=""

# keine verschlüsselte Verbindung verwenden (nicht empfohlen) (true / false)
UNSECURE=""

# verwende STARTTLS (nicht empfohlen) (true / false)
STARTTLS=""


# ab hier nichts mehr ändern
# ##############################################################
# Startzeit speichern:
# --------------------------------------------------------------
start_datetime=$(date +'%Y-%m-%dT%H:%M:%S')
start_datetime_utc=$(date -u +'%Y-%m-%dT%H:%M:%S')

# prüfe Variablen:
# --------------------------------------------------------------
[ ! -d "${DOWNLOAD_FOLDER}" ] && echo "! ! ! ERROR - Zielverzeichnis ist ungülgig!" && exit 1
[ -z "${HOST}" ] && echo "! ! ! ERROR - kein Server (HOST) definiert." && exit 1
[ -z "${USERNAME}" ] && echo "! ! ! ERROR - kein Benutzername (USERNAME) definiert." && exit 1
[ -z "${PASSWORD}" ] && echo "! ! ! ERROR - kein Passwort (PASSWORD) definiert." && exit 1

# stelle Kommando zusammen:
# --------------------------------------------------------------
cmd="--host=${HOST} --username=\"${USERNAME}\" --password=${PASSWORD}"
[ -n "${IMAP_FOLDER}" ] && cmd="${cmd} --imap-folder=${IMAP_FOLDER}"
[ -n "${SUBJECT_REGEX}" ] && cmd="${cmd} --subject-regex=${SUBJECT_REGEX}"
[ -n "${DATE_AFTER}" ] && cmd="${cmd} --date-after=${DATE_AFTER}"
[ -n "${DATE_BEFORE}" ] && cmd="${cmd} --date-before=${DATE_BEFORE}"
[ -n "${FILENAME_TEMPLATE}" ] && cmd="${cmd} --filename-template=${FILENAME_TEMPLATE}"
if [ -n "${DELETE}" ] && [ "${DELETE}" = true ]; then
    cmd="${cmd} --delete"
    [ -n "${DELETE_COPY_FOLDER}" ] && cmd="${cmd} --delete-copy-folder=${DELETE_COPY_FOLDER}"
fi
[ -n "${PORT}" ] && cmd="${cmd} --port=${PORT}"
[ -n "${UNSECURE}" ] && [ "${UNSECURE}" = true ] && cmd="${cmd} --unsecure"
[ -n "${STARTTLS}" ] && [ "${STARTTLS}" = true ] && cmd="${cmd} --starttls"
cmd="${cmd} --output=${DOWNLOAD_FOLDER}"

echo "Kommando: attachment-downloader ${cmd}"

# ##############################################################
# erstelle python environment:
# --------------------------------------------------------------
echo "➜ check Pythonumgebung …"
python_module_list=( attachment-downloader )
my_name="${0##*/}"
my_path="${0%/*}"
python_env_path="${my_path}/${my_name%.*}_pyEnv"

if [ ! -d "${python_env_path}" ]; then
    python3 -m venv "${python_env_path}"
    source "${python_env_path}/bin/activate"
else
    source "${python_env_path}/bin/activate"
fi

if ! python3 -m pip --version > /dev/null  2>&1 ; then
    # Python3 pip was not found and will be now installed:
    # install pip:
    python3 -m ensurepip --default-pip
    # upgrade pip:
    python3 -m pip install --upgrade pip
fi

if python3 -m pip list 2>&1 | grep -q "version.*is available" ; then
    printf "%s\n" "pip already installed ($(python3 -m pip --version)) / upgrade available ..."
    python3 -m pip install --upgrade pip
fi

# check / install python modules:
echo "➜ check Pythonmodule …"
moduleList=$(python3 -m pip list 2>/dev/null)

for module in "${python_module_list[@]}"; do
    moduleName=$(echo "${module}" | awk -F'=' '{print $1}' )

    unset tmp_log1
    printf "%s" "➜ check python module \"${module}\": ➜ "
    if !  grep -qi "${moduleName}" <<<"${moduleList}"; then
        printf "%s" "${module} was not found and will be installed ➜ "

        # install module:
        tmp_log1=$(python3 -m pip install "${module}")

        # check install:
        if grep -qi "${moduleName}" <<<"$(python3 -m pip list 2>/dev/null)" ; then
            echo "ok"
        else
            echo "failed ! ! ! (please install ${module} manually)"
            echo "install log:" && echo "${tmp_log1}"
            return 1
        fi
    else
        printf "ok\n"
    fi
done


# ##############################################################
# run attachment-downloader
# ---------------------------------------------------------------------
echo "➜ Mailanhänge laden …"
eval "attachment-downloader ${cmd}"

echo "➜ setze \"DATE_AFTER\" auf Startzeit des aktuellen Aufrufs (UTC) …"
sed -i 's~^'DATE_AFTER'=.*~'DATE_AFTER'=\"'${start_datetime_utc}'\"~' "${0}"

echo "➜ lösche unerwünschte Dateien …"

# Konvertieren der eingegebenen Dateiendungen in eine reguläre Ausdruckssyntax (Groß- und Kleinschreibung ignorieren)
file_extensions_regex=""
for ext in "${file_extensions_user[@]}"; do
    file_extensions_regex+="\|$(echo "$ext" | tr '[:upper:]' '[:lower:]')"
    file_extensions_regex+="\|$(echo "$ext" | tr '[:lower:]' '[:upper:]')"
done
file_extensions_regex="\(${file_extensions_regex:2}\)" # Entferne das führende "|" und ergänze Klammer

# Löschen aller anderen Dateien im aktuellen Verzeichnis
find "${DOWNLOAD_FOLDER}" -maxdepth 1 -type f ! -regex ".*\.${file_extensions_regex}$" -newermt "${start_datetime}" -exec rm -f {} \;


echo "done :-)"
 
Zuletzt bearbeitet von einem Moderator:
  • Like
Reaktionen: Monacum und abrocksi

driftkingisback

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
122
Punkte für Reaktionen
4
Punkte
18
Habe versucht es gestern zu installieren, irgendwie habe ich es nicht hinbekommen. Über Hilfe würde ich mich freuen eventuell team viewer.
Wollte ich gerne ausprobieren.

Die Notlösung war jetzt, dass ich mir beim Apple Mail ein intelligentes Postfach angelegt habe, Anhänge gefiltert mit dem Dokumentenstatus PDF für das ganze Jahr z.B 2022...alle Emails die gefiltert wurden markiert und auf Anhänge sichern geklickt und einen Ordner dafür erstellt. Das ging erstmal
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.388
Punkte für Reaktionen
1.206
Punkte
234


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat