E-Mail-Aufgaben: Konfiguration, Verarbeitungs-Engine und Zeitplanung
Datenmodell der E-Mail-Aufgaben, Quellen und Verarbeitungsadapter, Validierung beim Speichern, Abgleich des Zeitplans, manuelle und Hintergrundläufe sowie Lücken bei Berechtigung und Inhaltsbereich.
Eine E-Mail-Aufgabe ist ein konfigurationsgesteuerter, ordnerbasierter Dokumentverarbeiter: Quelle (Gmail API, Gmail IMAP, MS365), Verarbeitungsadapter, Zielspeicher (Drive, Ordner der Dokumentenzentrale, Firmenordner oder lokales Verzeichnis) und Zeitplan. Ausgeführt wird sie von der E-Mail-Aufgaben-Engine, manuell oder durch den Zeitplaner-Job email_task.
Datenmodell
Die Tabellennamen tragen in der Datenbank das eigene Präfix der Installation.
| Tabelle | Rolle | Beziehung |
|---|---|---|
emailtask | Aufgabe: Code, Name, Quelle und Zugang, Filter, Handler, params_json, Ordner, Ziel, Zeitplan, Status | Zielfirma |
company_folder | Drive-Ordner der Firma nach Typ | Firma |
cron_queue | Zeitplanvorlage der Aufgabe | Nutzlast email_task_id |
Verarbeitungsadapter (Positivliste): store_only, link_invoice, nemzetiutdij, rackforest, otpkelfo, googlews, anthropic, foxpost, github, ingatlancom.
Speichern und Ausführen
- Validierung: Code
[a-z0-9_-]{2,32}, eindeutig (leer = Handlername); Name; quellabhängige Pflichtfelder (IMAP-Passwort und MS365-Secret nur beim Anlegen, nur schreibbar); Handler aus der Positivliste; gültiges JSON; Pflicht-Ordner für Verarbeitetes; Zielspeicher (lokaler Pfad oder Ordner der Dokumentenzentrale/Firmenordner; beiingatlancomnicht nötig); gemeinsamer Zeitgeber (5–1440 Minuten, Wochentag, monatlich 1–28). - Nach dem Speichern legt
syncScheduledie Cron-Vorlage an, aktualisiert oder deaktiviert sie (deaktiviert bei inaktiver Aufgabe, fehlender Zielfirma oder falschem Intervall). Bei einer neuen Zeile wird die ID zurückgeschrieben. runnow: Die Engine läuft sofort im Zeitbudget (job_sync_budget, Standard 8 s) und reiht den Rest zur Fortsetzung ein; Fehler bei inaktiver Aufgabe.delete: löscht die Aufgaben und ihre Cron-Vorlagen.- Helfer:
folders(Postfachordner mit dem angegebenen Zugang),companyfolders,drivefolders(höchstens 20 Treffer),addfolder,companyaccount(schlanke Weiterleitung an den Speicher-Endpunkt der Dokumentenzentrale mitctx=emailtask). - Hintergrund: Job
email_task→ Catalogtask/emailtask::processForCronqueue;email_task_idder Nutzlast beschränkt auf eine Aufgabe, Firma und Zeitpunkt kommen aus der Aufgabe.
Fehlerschlüssel
error_code, error_code_exists, error_gmail_account, error_imap*, error_ms365*, error_handler, error_params_json, error_processed_required, error_storage_configuration, error_v2_migration, error_task_inactive, error_schedule_missing, error_interval.
Berechtigungen
list(nicht eingestuft);addhat keine Katalogzeile, daher entscheidetedit(canSave);editauf allen übrigen Endpunkten;delete;debug. Der BASE-Schlüsselstatusdeletehat keinen Endpunkt; sein Verhalten ist nicht feststellbar.- Inhaltsbereich (
companyInScope) nur aufcompanyfolders,drivefoldersundaddfolder. Die Listenabfrage engt nicht auf erlaubte Firmen ein.
Bekannte Einschränkungen
Die Liste zeigt ohne Inhaltsbereich die Aufgaben aller Firmen; Speichern und Ausführen prüfen den Inhaltsbereich der Zielfirma nicht.