Du betrachtest gerade getmail für eml2pdf, Emails automatisch abrufen

getmail für eml2pdf, Emails automatisch abrufen

getmail für eml2pdf, so holst du deine Emails vom SERVER und übergibst sie automatisch an eml2pdf. Auch Filter kannst du definieren !

Der folgende Beitrag ist auf Anregung von „Samke“, einen Benutzer von eml2pdf, entstanden. Samke hat sehr gute Erfahrungen mir getmail gemacht, um Emails automatisch abzurufen und an eml2pdf zu Verarbeitung zu übergeben.


Einfache Konfiguration für 1-3 E-Mail-Adressen

Das Ziel

E-Mails von mehreren Konten automatisch abrufen und alle EML-Dateien direkt in einem Verzeichnis (./eml-import/) ablegen – bereit für die Weiterverarbeitung mit Tools wie eml2pdf.

Die Lösung: Maildir + automatisches Verschieben

Wir nutzen das bewährte Maildir-Format (jede E-Mail als eigene .eml-Datei) und verschieben die Dateien einfach aus dem Unterordner new/ nach oben.

Video: getmail für eml2pdf, Emails automatisch abrufen

Sprache: 🇩🇪|🇬🇧
☝️ Benutze YouTube Untertitel für alle Sprachen.

1. Verzeichnisstruktur vorbereiten

bash

mkdir -p getmail-docker/{config,eml-import,logs}
cd getmail-docker

2. Konfigurationsdateien für bis zu 3 Konten

Konto 1: Gmail – config/getmailrc-gmail

ini

[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
port = 993
username = [email protected]
password = TestPasswort.1  # Bei 2FA: App-Passwort verwenden!

[destination]
type = Maildir
path = /eml-import/

[options]
verbose = 2
delete = false
delete_after = 0
max_message_size = 0
message_log = /logs/getmail-gmail.log

Konto 2: Outlook – config/getmailrc-outlook

ini

[retriever]
type = SimpleIMAPSSLRetriever
server = outlook.office365.com
port = 993
username = [email protected]
password = EinAnderesPasswort

[destination]
type = Maildir
path = /eml-import/

[options]
verbose = 2
delete = false
delete_after = 0
max_message_size = 0
message_log = /logs/getmail-outlook.log

Konto 3: Web.de – config/getmailrc-webde

ini

[retriever]
type = SimpleIMAPSSLRetriever
server = imap.web.de
port = 993
username = [email protected]
password = WebdePasswort

[destination]
type = Maildir
path = /eml-import/

[options]
verbose = 2
delete = false
delete_after = 0
max_message_size = 0
message_log = /logs/getmail-webde.log

3. Erklärung der wichtigsten getmail-Optionen

Retriever-Abschnitt (Server-Verbindung)

OptionBeschreibungBeispiel
typeProtokoll und VerschlüsselungSimpleIMAPSSLRetriever (IMAP mit SSL), SimplePOP3SSLRetriever (POP3 mit SSL)
serverAdresse des Mailserversimap.gmail.comoutlook.office365.comimap.web.de
portServer-Port993 (IMAP SSL), 995 (POP3 SSL)
usernameVollständige E-Mail-Adresse[email protected]
passwordPasswort oder App-PasswortTestPasswort.1 oder 16-stelliges App-Passwort bei Google

Destination-Abschnitt (Zielspeicher)

OptionBeschreibungBeispiel
typeFormat der SpeicherungMaildir (einzelne EML-Dateien in new/, cur/, tmp/)
pathZielverzeichnis im Container/eml-import/

Options-Abschnitt (Verhalten)

OptionBeschreibungBeispiel
verboseAusführlichkeit der Ausgabe (0-3)2 (mittlere Detailstufe)
deleteMails nach Download vom Server löschen?false = behalten, true = löschen
delete_afterAutomatisch löschen nach X Tagen0 = deaktiviert, 30 = nach 30 Tagen
max_message_sizeMaximale Größe pro Mail in Bytes0 = unbegrenzt, 5242880 = 5 MB
message_logPfad zur Logdatei/logs/getmail.log
delivered_to„Delivered-To“-Header hinzufügen?false
received„Received“-Header hinzufügen?false

Wichtige Hinweise zu den Optionen

OptionBedeutung
delete = falseMails bleiben auf dem Server (empfohlen)
delete = trueMails werden vom Server gelöscht – nur mit Backup!
delete_after = 30Löscht Mails automatisch 30 Tage nach Download
max_message_size = 0Alle Mails, egal wie groß
max_message_size = 5242880Nur Mails bis 5 MB
verbose = 2Detaillierte Ausgabe (gut für Einrichtung)

4. Docker-Compose Datei: docker-compose.yml

yaml

version: '3.8'

services:
  getmail:
    image: python:3.11-slim
    container_name: getmail-multi
    restart: unless-stopped
    volumes:
      - ./config:/config:ro
      - ./eml-import:/eml-import
      - ./logs:/logs
    environment:
      - TZ=Europe/Berlin  # Oder Asia/Bangkok, je nach Wunsch
    command: >
      sh -c "
      pip install --no-cache-dir getmail6 &&
      echo '=== getmail Multi-Account Starter ===' &&
      while true; do
        # Alle Konfigurationsdateien durchgehen
        for rcfile in /config/getmailrc-*; do
          if [ -f \"\$rcfile\" ]; then
            echo \"\$(date): Verarbeite \$(basename \$rcfile)\"
            getmail --getmaildir /config --rcfile=\$(basename \$rcfile)
          fi
        done
        
        # WICHTIG: Alle neuen EMLs direkt nach /eml-import/ verschieben
        if [ -d /eml-import/new ] && [ \"\$(ls -A /eml-import/new/ 2>/dev/null)\" ]; then
          echo \"\$(date): Verschiebe neue EMLs nach /eml-import/\"
          mv /eml-import/new/* /eml-import/ 2>/dev/null || true
          echo \"\$(date): Fertig - EMLs bereit für die Weiterverarbeitung\"
        fi
        
        echo \"\$(date): Warte 5 Minuten bis zum nächsten Durchlauf\"
        sleep 300
      done
      "

5. Starten und testen

bash

# Container starten
docker-compose up -d

# Logs ansehen
docker-compose logs -f

# Nach einigen Minuten: Prüfen, ob EMLs ankommen
ls -la ./eml-import/

# Beispiel-Ausgabe:
# -rw-r--r-- 1 user user  12543 Feb 21 12:34 1701234567.12345_1.server:2,
# -rw-r--r-- 1 user user   8972 Feb 21 12:34 1701234568.12345_2.server:2,
# -rw-r--r-- 1 user user 152034 Feb 21 12:35 1701234569.12345_3.server:2,

6. Was passiert hier genau?

SchrittBeschreibung
1Container startet, installiert getmail
2Alle 5 Minuten werden alle Konfigurationsdateien (getmailrc-*) verarbeitet
3Jedes Konto ruft seine E-Mails ab und speichert sie im Maildir-Format
4Neue Mails landen zuerst in /eml-import/new/
5Unser Skript verschiebt alle Dateien aus new/ nach /eml-import/
6FERTIG: Alle EMLs liegen direkt im Hauptverzeichnis

7. Wichtige Hinweise

Google Mail mit 2-Faktor-Authentifizierung

Bei Google mit 2FA kein normales Passwort verwenden, sondern ein App-Passwort:

  • Google-Konto → Sicherheit → App-Passwörter
  • 16-stelliges Passwort generieren
  • In der Konfiguration eintragen

Was ist in einer .eml-Datei enthalten?

  • Komplette E-Mail mit Text und allen Anhängen (PDFs, Bilder, etc.)
  • Anhänge sind Base64-codiert in der Datei eingebettet
  • Keine separaten Dateien nötig!

Für die Weiterverarbeitung mit eml2pdf

bash

# Alle EMLs in PDFs konvertieren
eml2pdf ./eml-import/ ./pdf-ausgabe/

8. Optional: Filtern nach Absender oder Betreff

Wenn Sie nur bestimmte E-Mails behalten möchten (z.B. nur von Cloudflare oder mit „Rechnung“ im Betreff):

ini

[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
username = [email protected]
password = TestPasswort.1

[filter]
type = Filter_classifier
expression = from
pattern = .*@(cloudflare|paypal)\.com
case_sensitive = false

[destination]
type = Maildir
path = /eml-import/

[options]
verbose = 2

9. Fehlerbehebung

bash

# Manuell einmal ausführen (zum Testen)
docker exec getmail-multi getmail --getmaildir /config --rcfile=getmailrc-gmail

# Logs prüfen
cat logs/getmail-gmail.log

# Wenn etwas schiefläuft: Container neustarten
docker-compose restart

Zusammenfassung

Mit dieser einfachen Konfiguration:

  • ✅ Bis zu 3 E-Mail-Konten (beliebig erweiterbar)
  • ✅ Alle EMLs direkt in /eml-import/ – genau dort, wo Sie sie brauchen
  • ✅ Jede EML enthält Text + Anhänge – alles in einer Datei
  • ✅ Perfekt für eml2pdf, Archivierung, Backup
  • ✅ Google Mail mit 2FA unterstützt (via App-Passwort)
  • ✅ Einfach zu warten und zu erweitern

Die Mails werden alle 5 Minuten abgerufen und automatisch ins richtige Verzeichnis verschoben – ein vollautomatischer, zuverlässiger Workflow!


Spenden Bild

Link zur Unterstützung / Spende für den Kanal
Wenn meine Beiträge hilfreich sind oder dir geholfen haben, würde ich mich über eine Unterstützung sehr freuen 🙏

PayPal Link
Überweisung, Bitcoin und Lightning


#Docker #eml2pdf #EmailToPdfKonverter #Getmail #AutomatischerEmailAbruf #Paperless #DMS

Schreibe einen Kommentar