Sign inSign up

michis0806/attachment-downloader

By michis0806

Updated 5 months ago

E-Mail-Anhänge automatisch via IMAP herunterladen – Multi-Account, Cron, Synology-ready

Image
0

10K+

michis0806/attachment-downloader repository overview

Attachment Downloader

Docker-Container zum automatischen Herunterladen von E-Mail-Anhängen via IMAP. Basiert auf jamesridgway/attachment-downloader.

Features

  • Mehrere IMAP-Accounts in einer YAML-Config
  • Inkrementelle Downloads via Stamp-Files (nur neue Mails seit letztem Lauf)
  • Mehrere IMAP-Folder pro Account (z.B. INBOX + Archive)
  • Konfigurierbares Cron-Intervall
  • Multi-Arch: amd64 + arm64
  • Optimiert für Synology NAS (DSM 7.2+)

Schnellstart

1. Config anlegen

Erstelle eine accounts.yml:

global:
  host: imap.example.com
  filename_template: "{{ date }} {{ subject }} - {{ attachment_name }}"

accounts:
  mein_account:
    username: [email protected]
    password: mein-passwort
    folders:
      - INBOX
2. Container starten
docker run -d \
  --name attachment-downloader \
  --restart unless-stopped \
  -e TZ=Europe/Berlin \
  -e CRON_SCHEDULE="*/15 * * * *" \
  -v /pfad/zu/config:/config:ro \
  -v /pfad/zu/downloads:/downloads \
  michis0806/attachment-downloader:latest

Oder mit docker-compose.yml:

services:
  attachment-downloader:
    image: michis0806/attachment-downloader:latest
    container_name: attachment-downloader
    restart: unless-stopped
    mem_limit: 512m
    environment:
      - TZ=Europe/Berlin
      - CRON_SCHEDULE=*/15 * * * *
    volumes:
      - ./config:/config:ro
      - ./downloads:/downloads

Synology Container Manager

Variante A: Über die Oberfläche (Container Manager)
  1. Ordner anlegen auf der Synology (z.B. per File Station):

    /volume1/docker/attachment-downloader/config/
    /volume1/docker/attachment-downloader/downloads/
    
  2. accounts.yml in den config/-Ordner legen (siehe oben)

  3. Container Manager öffnen → ProjektErstellen

    • Name: attachment-downloader
    • Pfad: /volume1/docker/attachment-downloader
    • Eine docker-compose.yml in diesen Ordner legen:
    services:
      attachment-downloader:
        image: michis0806/attachment-downloader:latest
        container_name: attachment-downloader
        restart: unless-stopped
        mem_limit: 512m
        environment:
          - TZ=Europe/Berlin
          - CRON_SCHEDULE=*/15 * * * *
        volumes:
          - /volume1/docker/attachment-downloader/config:/config:ro
          - /volume1/docker/attachment-downloader/downloads:/downloads
    
  4. Erstellen klicken – der Container wird heruntergeladen und gestartet

Variante B: Per SSH
cd /volume1/docker/attachment-downloader
docker compose pull
docker compose up -d
Logs prüfen

Im Container Manager unter Containerattachment-downloaderProtokoll.

Oder per SSH:

docker logs -f attachment-downloader
Updates

Im Container Manager: Projektattachment-downloaderAktionErstellen (Build).

Oder per SSH:

docker compose pull && docker compose up -d

Konfiguration

Umgebungsvariablen
VariableDefaultBeschreibung
CRON_SCHEDULE*/15 * * * *Cron-Ausdruck für das Intervall
TZEurope/BerlinZeitzone
CONFIG_FILE/config/accounts.ymlPfad zur Config-Datei
DOWNLOAD_DIR/downloadsBasis-Download-Verzeichnis
accounts.yml
global:
  host: imap.example.com                                    # Standard-IMAP-Server
  filename_template: "{{ date }} {{ subject }} - {{ attachment_name }}"  # Standard-Dateiname

accounts:
  user1:
    username: [email protected]
    password: geheim123
    folders:
      - INBOX
      - Archive

  user2:
    username: [email protected]
    password: geheim456
    host: imap.anderer-server.de       # Eigener Host überschreibt global
    folders:
      - INBOX
Download-Struktur
/downloads/
├── user1/
│   ├── 2025-01-15 Rechnung - Dokument.pdf
│   └── 2025-01-20 Vertrag - Anlage.pdf
├── user2/
│   └── ...

Pro Account wird ein Unterordner angelegt. Stamp-Files (.account_last.stamp) merken sich den letzten Lauf-Zeitpunkt für inkrementelle Downloads.

Volumes

PfadBeschreibung
/configConfig-Verzeichnis mit accounts.yml (read-only empfohlen)
/downloadsZielverzeichnis für heruntergeladene Anhänge

Quellcode

GitHub Repository

Tag summary

Content type

Image

Digest

sha256:b98b90c5b

Size

60.8 MB

Last updated

5 months ago

docker pull michis0806/attachment-downloader