Version 2.3.0 | Stand: 2026-05-13
- Einrichtung: IMAP
- Einrichtung: Gmail API
- Profile konfigurieren
- Rechnungen abrufen
- DATEV-Export
- Troubleshooting
- FAQ
IMAP funktioniert mit jedem Mail-Anbieter (Gmail, Outlook, GMX, web.de, etc.).
-
Starte
UniversalInvoiceMail.py(oder die .exe) -
Klicke auf "Mailkonto hinzufügen"
-
Wähle "IMAP"
-
Fülle das Formular aus:
Feld Beispiel (Gmail) Beispiel (GMX) IMAP-Server imap.gmail.comimap.gmx.netPort 993993SSL ✓ aktiviert ✓ aktiviert Benutzername deine@gmail.comdeine@gmx.dePasswort App-Passwort (s. unten) Normales Passwort -
Klicke "Verbindung testen" → Grüne Meldung = Erfolg
-
"Speichern"
Gmail erfordert ein App-Passwort (kein normales Passwort):
- Google-Konto → Sicherheit → 2-Faktor-Authentifizierung aktivieren
- Dann: Sicherheit → App-Passwörter → Neue App anlegen
- Das generierte 16-stellige Passwort in UniversalInvoiceMail verwenden
Microsoft blockiert IMAP mit normalem Passwort. Alternativen:
- OAuth2 aktivieren (komplex, nur für Entwickler empfohlen)
- Empfehlung: Gmail API (Task 2) oder anderen Anbieter nutzen
Die Gmail API ist schneller als IMAP und hat keine Rate-Limits.
pip install google-auth-oauthlib google-api-python-client- Öffne Google Cloud Console
- Neues Projekt anlegen (z. B. "InvoiceMail")
- APIs & Services → Bibliothek → "Gmail API" aktivieren
- APIs & Services → Anmeldedaten → "OAuth 2.0-Client-IDs" erstellen
- Anwendungstyp: Desktop-App
credentials.jsonherunterladencredentials.jsonunter%USERPROFILE%\.universal_invoice_mail\ablegen
- "Mailkonto hinzufügen" → "Gmail API"
- Klicke "Autorisieren" → Browser öffnet sich → Google-Konto auswählen
- Berechtigungen bestätigen
- Token wird als
token.jsonunter%USERPROFILE%\.universal_invoice_mail\gespeichert (einmalig) - "Speichern"
Profile definieren, von welchen Absendern und mit welchen Filtern Rechnungen gesucht werden.
-
Tab "Profile" → "Neu"
-
Profilname vergeben (z. B. "Amazon-Bestellungen")
-
Felder ausfüllen:
Feld Beschreibung Beispiel Absender-Filter Kommagetrennte E-Mail-Adressen oder Domains @amazon.de, @amazon.comBetreff-Filter Kommagetrennte Suchbegriffe (ODER-Verknüpfung) Bestellung, RechnungBlacklist Mails die diese Begriffe enthalten werden ignoriert Newsletter, WerbungBody muss enthalten Body muss mindestens einen dieser Begriffe enthalten RechnungsnummerBody darf nicht halten Body darf keinen dieser Begriffe enthalten abonnementZielordner Wohin die PDFs gespeichert werden C:\Dokumente\Rechnungen\AmazonZeitraum Von/Bis Mails außerhalb des Zeitraums werden ignoriert 01.01.2026 – 31.12.2026 -
"Speichern"
Für gängige Shops sind Vorlagen vorhanden (z. B. Amazon, Zalando). Diese können als Ausgangspunkt verwendet und angepasst werden.
- Profil auswählen
- Mailkonto auswählen
- Klicke "Suchen"
- Gefundene Mails werden in der Tabelle angezeigt
- Klicke "Herunterladen" oder "Alle herunterladen"
| Modus | Beschreibung |
|---|---|
| Anhang | Nur PDF-Anhänge speichern |
| Body→PDF | Mail-Body als PDF konvertieren (kein Anhang) |
| Vollständig | Anhang + Body zusammenführen (erfordert OCR) |
| Browser | Browser rendert die Mail als PDF (beste Qualität) |
Bereits heruntergeladene Mails werden per SHA256-Hash erkannt und nicht erneut heruntergeladen. Das Symbol 📎 in der Liste zeigt an, dass ein PDF-Anhang vorhanden ist.
- Markiere die Rechnungen, die in den Buchungsstapel sollen.
- Trage in der Tabelle den Betrag in der Spalte Betrag (€) ein.
- Klicke auf DATEV exportieren.
- Prüfe Beraternummer und Mandantennummer im Dialog.
- Speichere die CSV-Datei für die Übergabe an die Buchhaltung.
Rechnungen ohne eingetragenen Betrag werden bewusst übersprungen und nach dem Export gemeldet.
Der Export wird als cp1252-CSV geschrieben, passend für DATEV-nahe Import-Workflows.
- IMAP: Falsches Passwort oder App-Passwort vergessen (→ neu erstellen)
- Gmail: Token abgelaufen →
token.jsonlöschen und neu autorisieren - GMX/Web.de: IMAP muss in den Mailkonto-Einstellungen aktiviert sein (Web-Interface → Einstellungen → E-Mail → IMAP)
- Zeitraum prüfen (Von/Bis-Datum korrekt?)
- Absender-Filter zu streng? → Leerfeld = alle Absender
- Betreff-Filter zu spezifisch? → Weniger Bedingungen testen
- IMAP-Ordner korrekt? Standard ist
INBOX– andere Ordner separat wählen
- Port prüfen: SSL = 993, ohne SSL = 143
- Wenn Firewall aktiv: Port 993 freigeben
xhtml2pdfinstalliert? →pip install xhtml2pdf- Browser-Modus: Edge oder Chrome muss installiert sein
keyringinstalliert? →pip install keyring- Windows: Passwort wird in der Windows Credential Manager gespeichert
pytesseractundpypdfium2installieren:pip install pytesseract pypdfium2- Oder:
tesseract_portable/Ordner im Programmverzeichnis muss vorhanden sein
F: Welche Mail-Anbieter werden unterstützt? A: Alle Anbieter mit IMAP-Unterstützung: Gmail, Outlook (eingeschränkt), GMX, web.de, T-Online, Yahoo, iCloud (mit App-Passwort) und andere.
F: Werden meine Passwörter sicher gespeichert?
A: Ja – Passwörter werden via keyring im Windows Credential Manager gespeichert,
nicht in der Konfigurationsdatei.
F: Kann die App mehrere Mailkonten gleichzeitig durchsuchen? A: Ja. Mehrere Konten können hinzugefügt und unabhängig verwendet werden.
F: Was passiert mit dem Passwort wenn ich das Profil lösche? A: Der Eintrag im Windows Credential Manager bleibt erhalten. Er kann manuell über "Systemsteuerung → Anmeldeinformationsverwaltung" gelöscht werden.
F: Wie verhindere ich doppelte Downloads? A: Die Hash-basierte Duplikat-Erkennung ist automatisch aktiv. Einmal heruntergeladene Anhänge werden nicht erneut gespeichert.
F: Kann ich die Rechnungen direkt in einen Cloud-Ordner speichern? A: Ja – als Zielordner einfach den lokalen Sync-Ordner von OneDrive/Dropbox/etc. angeben.
F: Welche Python-Version wird benötigt? A: Python 3.9 oder neuer.
F: Kann ich die App ohne GUI (headless) nutzen? A: Nein, die aktuelle Version erfordert eine grafische Oberfläche (PyQt6).