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.
- 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
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)
| 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 |
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.
- https://entra.microsoft.com → App registrations → New
- Redirect URI:
https://mailpilot.deine-domain.de/api/v1/auth/oauth/callback - API permissions (delegated):
Mail.Read·Mail.ReadWrite·MailboxSettings.Read·User.Read·offline_access
- Certificates & secrets → Client-Secret erzeugen, Wert notieren
- Tenant-ID, Client-ID notieren
Detail-Anleitung mit DSM-spezifischen Hinweisen: docs/SYNOLOGY-INSTALL.md.
Kurz-Version:
- DSM File Station → Ordner
/docker/mailpilot-ai/anlegen .envausdocker/.env.exampleableiten und mit echten Werten füllen. MindestensJWT_SECRET,ENCRYPT_KEY(jeopenssl 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.docker/docker-compose.synology.ymlnach/docker/mailpilot-ai/docker-compose.ymlhochladen (rename aufdocker-compose.yml— DSM erwartet diesen Namen).- DSM Container Manager → Projekt → Erstellen mit Namen
mailpilot-ai, Pfad/docker/mailpilot-ai, Quelle „bestehende docker-compose.yml". - DSM Login Portal → Reverse 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.
In Outlook: Datei → Add-Ins verwalten → Meine Add-Ins → Benutzerdefiniertes
Add-In hinzufügen → aus Datei → addin/manifest.xml auswählen.
Für Team-Rollout (Office 365 Admin Center): Zentrale Bereitstellung über Integrated Apps.
cd backend/
composer install
cp config/config.example.php config/config.php # dann editieren
php -S localhost:8080 -t public/
composer cs-fixcomposer 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-DBtest: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 --downEinzelne 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.
cd addin/
# manifest.xml zeigt auf localhost:3000 in DEV — ggf. anpassen
npx http-server src/ -p 3000 --sslOffice Add-ins erfordern HTTPS — für lokal entweder self-signed Cert oder
npm install -g office-addin-dev-certs.
docs/PRD.md— Produkt-Spezifikationdocs/API.md— REST API Contractdocs/PROMPTS.md— Claude Prompt Librarydocs/DSGVO.md— Datenschutz-NotizenCLAUDE.md— Projekt-Standards (für Claude Code)
- 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-workerContainer) - Sync-Controller + Job-Tracking (
SyncController+JobRecoveryService) - Integration-Tests (23 Tests in
tests/Integration/)
- 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
- Bedrock-Provider via
ProviderFactory(EU-Sovereign-Mode wählbar) - Admin-UI (
admin/mit Mandanten- und Prompt-Verwaltung) - Slack/Teams Mirror
Proprietär — CallMeTechie.de. Nutzung durch CallMeTechie und lizenzierte Teammitglieder.