main
Ed25519-signed updates, checked via a fixed-tag latest.json manifest on Gitea Releases; scripts/release.sh automates build+sign+publish. Adds a manual "Nach Updates suchen" trigger plus a silent startup check.
Mail Client
Ein nativer Desktop-Mail-Client (Tauri + Rust + React/Tailwind) mit eigenem IMAP-, POP3- und SMTP-Backend. Mehrere Konten (Gmail, Outlook, Yahoo, iCloud, beliebige custom IMAP/POP3-Server), Passwörter liegen im System-Keychain (nicht in einer Datei).
Setup (einmalig)
Systempakete für den Tauri-Build unter Linux:
sudo apt update && sudo apt install -y libwebkit2gtk-4.1-dev libssl-dev libdbus-1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev libsoup-3.0-dev build-essential curl wget file pkg-config
Rust-Toolchain: mind. 1.77 (per rustup, siehe https://rustup.rs).
Entwicklung starten
cd mail-client
npm install
npm run tauri dev
Das öffnet das App-Fenster mit Hot-Reload für Frontend und Backend.
Produktions-Build
npm run tauri build
Konto hinzufügen
Beim Hinzufügen eines Kontos über die Sidebar (+) ein Provider-Preset wählen. Für Gmail und Yahoo wird ein App-Passwort benötigt (nicht das normale Account-Passwort):
- Gmail: Google-Konto → Sicherheit → 2-Faktor-Authentifizierung aktivieren → App-Passwörter
- Yahoo: Account Security → App-Passwörter generieren
Architektur
src-tauri/src/imap_client.rs— IMAP (Ordner, Nachrichtenliste, Volltext) viaimap+native-tlssrc-tauri/src/pop3_client.rs— handgeschriebener minimaler POP3-Client (TLS, USER/PASS/LIST/TOP/RETR/DELE)src-tauri/src/smtp_client.rs— SMTP-Versand vialettre(implizites TLS oder STARTTLS)src-tauri/src/db.rs— SQLite-Cache für Nachrichten (Offline-Ansicht, schnelles erstes Laden)src-tauri/src/accounts.rs— Kontoverwaltung, Passwörter im OS-Keychain (keyringcrate)src/— React/Tailwind-UI: 3-Spalten-Layout (Sidebar, Nachrichtenliste, Lesefenster) + Compose-Modal
Bekannte Einschränkungen (MVP)
- POP3 verwendet die Server-seitige Nachrichtennummer als ID (keine stabile
UIDL-basierte ID) — für ein Minimal-POP3-Setup ausreichend, aber nicht robust gegenüber Nachrichten-Neuordnung zwischen Sessions. - Gmail/Outlook/Yahoo laufen über klassisches IMAP+Passwort-Login, nicht OAuth2 (einfacher Einstieg, funktioniert mit App-Passwörtern; für einen "Verified by Google"-OAuth-Flow müsste man eine Google-Cloud-App registrieren).
- Kein Ordner-Unread-Counter (Sidebar zeigt aktuell 0), keine Volltextsuche, keine Regeln/Filter.
- HTML-Mails werden in einem sandboxed
<iframe>ohne Skriptausführung gerendert; externe Bilder werden aber nachgeladen (kein Tracking-Pixel-Blocker).