Skip to content

Repository files navigation

MailPilot AI

KI-gestütztes Outlook Add-in für E-Mail-Triage. Klassifiziert eingehende Mails nach Relevanz, generiert Kurz-Zusammenfassungen und Antwort-Vorschläge, setzt Outlook-Kategorien automatisch.

Features

  • Relevanz-Klassifizierung — Direct / Action / CC / Newsletter / Auto / Noise
  • Tages-Briefing — Zähler + Top-Priority-Liste beim Outlook-Start
  • Kurz-Zusammenfassung — pro Mail, 1–2 Sätze
  • Antwort-Entwürfe — in deinem Ton, Sprache aus Thread erkannt
  • Auto-Kategorisierung — native Outlook-Kategorien per Graph API
  • Multi-Tenant — für Teams, mit Rollen
  • Self-hosted — auf deinem NAS, DSGVO-freundlich

Architektur

Outlook Desktop/Web
    ↓ (Office.js Task Pane)
Backend (PHP 8.4 + MariaDB + Redis)  ← Synology NAS
    ↓
Microsoft Graph API  (Mails, Kategorien)
    ↓
LLM-Router (Claude Haiku→Scoring, Opus 4.8→Summary/Reply · OpenAI/Gemini/Mistral/lokal als Fallback)

Tech Stack

Layer Tech
Add-in Office.js, vanilla JS, ES2022 modules
Backend PHP 8.4, PSR-12 (tabs), PDO
Storage MariaDB 11.4, Redis 7
AI Multi-Provider-LLM-Schicht mit dynamischem Modell-Katalog (live pro Provider entdeckt) + Effort pro Rolle — Claude Haiku→Scoring, Opus 4.8→Summary/Reply (default), OpenAI, Gemini, Mistral, lokale Modelle; Failover via LlmRouter
Integration MS Graph API (OAuth2 + PKCE)
Deploy Docker Compose on Synology DSM 7.2

Setup

Drei Schritte: Azure App Registration → Container-Stack hochfahren → Outlook Add-in sideloaden. Der Stack läuft auf Synology DS218+/DS220+/DS920+ mit DSM 7.2+ über den Container Manager — alternativ überall, wo docker compose verfügbar ist.

1. Azure App Registration

  1. https://entra.microsoft.comApp registrationsNew
  2. Redirect URI: https://mailpilot.deine-domain.de/api/v1/auth/oauth/callback
  3. API permissions (delegated):
    • Mail.Read · Mail.ReadWrite · MailboxSettings.Read · User.Read · offline_access
  4. Certificates & secrets → Client-Secret erzeugen, Wert notieren
  5. Tenant-ID, Client-ID notieren

2. Container-Stack auf der NAS deployen

Detail-Anleitung mit DSM-spezifischen Hinweisen: docs/SYNOLOGY-INSTALL.md.

Kurz-Version:

  1. DSM File Station → Ordner /docker/mailpilot-ai/ anlegen
  2. .env aus docker/.env.example ableiten und mit echten Werten füllen. Mindestens JWT_SECRET, ENCRYPT_KEY (je openssl rand -hex 32), DB_PASS, DB_ROOT_PASS, CLAUDE_API_KEY, MS_CLIENT_ID/SECRET, APP_BASE_URL, MS_REDIRECT_URI, ADMIN_USER, ADMIN_PASS_HASH_B64.
  3. docker/docker-compose.synology.yml nach /docker/mailpilot-ai/docker-compose.yml hochladen (rename auf docker-compose.yml — DSM erwartet diesen Namen).
  4. DSM Container ManagerProjektErstellen mit Namen mailpilot-ai, Pfad /docker/mailpilot-ai, Quelle „bestehende docker-compose.yml".
  5. DSM Login PortalReverse Proxy für Backend (:19080) und Admin (:19081) auf deine Domain einrichten.

Beim ersten Start dauert es ~30–60 s, bis das Backend-Init Migrations eingespielt hat und der Healthcheck grün wird. Danach starten Worker und Admin automatisch.

Lokal (Linux/macOS, Dev-Maschine): cd docker/ && docker compose up -d mit docker/docker-compose.yml.

3. Add-in sideloaden

In Outlook: Datei → Add-Ins verwalten → Meine Add-Ins → Benutzerdefiniertes Add-In hinzufügen → aus Dateiaddin/manifest.xml auswählen.

Für Team-Rollout (Office 365 Admin Center): Zentrale Bereitstellung über Integrated Apps.

Development

Backend

cd backend/
composer install
cp config/config.example.php config/config.php  # dann editieren
php -S localhost:8080 -t public/
composer cs-fix

Tests

composer test:unit          # Unit-Suite — keine DB nötig, schnell
composer test:integration   # fährt die Test-MariaDB hoch + Integration-Suite
composer test:all           # Unit + Integration gegen die live Test-DB

test:integration und test:all starten über bin/test-db-up.sh automatisch einen abgesicherten MariaDB-11.4-Container (127.0.0.1-Binding, Zufallspasswort, Auto-Migrations) und sourcen dessen Credentials. Voraussetzung: Docker. Aufräumen danach:

bash backend/bin/test-db-up.sh --down

Einzelne Tests gezielt: composer test:integration -- --filter SenderResolverTest. Kein SQLite-Fallback — das Schema ist MariaDB-spezifisch (ENUM, utf8mb4, JSON, FK-CASCADE), daher laufen die Tests bewusst gegen die echte Engine.

Add-in

cd addin/
# manifest.xml zeigt auf localhost:3000 in DEV — ggf. anpassen
npx http-server src/ -p 3000 --ssl

Office Add-ins erfordern HTTPS — für lokal entweder self-signed Cert oder npm install -g office-addin-dev-certs.

Dokumentation

Roadmap

MVP (v0.1) — abgeschlossen

  • Projekt-Skelett
  • DB-Schema (inkl. 59 Migrations)
  • Claude Client + Scoring Service
  • Graph Client + OAuth
  • Task Pane UI
  • Auth-Controller + JWT-Verifikation in BaseController
  • Worker für asynchrones Scoring (bin/worker.php + mailpilot-worker Container)
  • Sync-Controller + Job-Tracking (SyncController + JobRecoveryService)
  • Integration-Tests (23 Tests in tests/Integration/)

v0.2 — in Arbeit

  • Auto-Sort-Rules + Korrektur-Loop (Sprint 6g — Rule-Inference aus Korrektur-Begründungen)
  • Auto-Reply-Drafts (Sprint 6f)
  • Pending-Actions UI + Auto-Sort Reconciliation
  • Thread-level Analyse (statt nur letzte Mail)
  • Kalender-Awareness
  • Weekly Digest per Mail

v1.0

  • Bedrock-Provider via ProviderFactory (EU-Sovereign-Mode wählbar)
  • Admin-UI (admin/ mit Mandanten- und Prompt-Verwaltung)
  • Slack/Teams Mirror

Lizenz

Proprietär — CallMeTechie.de. Nutzung durch CallMeTechie und lizenzierte Teammitglieder.

About

MailPilot AI — KI-gestütztes Outlook Add-in für E-Mail-Triage

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages