21 KiB
Postclient — Desktop-Client für PEC, REM und IMAP
Sprache: English · Italiano · Français · Deutsch · Español
Die Programmoberfläche ist Englisch, Italienisch, Französisch, Deutsch oder Spanisch. Diese Dokumente beschreiben denselben Open-Source-Desktop-Mailclient für alle, die posta elettronica certificata (PEC), eIDAS registered electronic mail (REM) und gewöhnliche IMAP- / POP3- / SMTP-Post unter Windows, Linux und macOS senden und aufbewahren.
Postclient ist ein lokaler Mailclient, keine Webmail. Er spricht IMAP, POP3 und SMTP mit vorhandenen Konten: Gmail, Microsoft 365, italienische PEC bei einem qualifizierten Gestore (Aruba, InfoCert Legalmail, Namirial, Poste Italiane, Register.it, Libero und IMAP mit eigener Domain) sowie europäische REM, wenn der Betreiber IMAP/SMTP anbietet. Nachweise bleiben auf diesem PC als .eml plus durchsuchbares SQLite-Archiv.
Es ist kein qualifizierter Vertrauensdiensteanbieter (QTSP), kein PEC-Betreiber, keine Zeitstempelstelle und kein Cloud-Postfach. Umschläge und Nachweise stellt der Gestore / QTSP aus. Dieses Programm öffnet sie, zeigt den Zustellnachweis und behält die Originale auf dem Rechner.
| Art | Desktop-Mailclient für PEC, REM und IMAP |
| OS | Windows, Linux, macOS (Apple Silicon und Intel) |
| Stack | C#, .NET 10, Avalonia, MailKit |
| Lizenz | Apache 2.0 |
| Ist nicht | Ein QTSP, eine neue PEC-/REM-Adresse, gehostete Mail, eine Scanner-App |
Änderungen: CHANGELOG.md. Entwicklung: CONTRIBUTING.md und die englische README (Build, Tests, Release).
Für zertifizierte Post auf dem Desktop
Desktop- und Webmail behandeln einen PEC-Umschlag oder einen ETSI-REM-Nachweis meist wie eine beliebige Anlage. Postclient ist um diesen Nachweis herum gebaut:
- PEC-/REM-Umschläge öffnen — innere
postacert.eml(die Nachricht für den Empfänger) statt des Gestore-Wrappers; Spalte Typ PEC, RIC, REM oder digital signiert SIG. - Zustellspalte aus Betreiber-Nachweisen — accettazione, avvenuta-consegna, ETSI
SubmissionAcceptance/Delivery/Retrieval, LRE- und AR24-Avis, De-Mail-Zustellung und Abholbestätigung, acuse de recibo. Nach SMTP gleicht Gesendet Inbox/Ricevute über Message-Id,daticert.xmlund Betreffpräfixe ab. Italienische PEC hat keine Lesebestätigung: avvenuta consegna ist Hinterlegung im zertifizierten Postfach. - FatturaPA-Vorschau — italienische E-Rechnung (XML) als lesbare Ansicht (XML-Parser, keine generative KI).
- Fascicolo originaler
.eml— ausgewählte Nachrichten als Dateien exportieren, die Notar, Behörde, Bank oder Gericht aufbewahren können. - Von ist eine Postfachauswahl — keine frei eingetippte Absenderadresse; Versand nutzt die SMTP-Identität des verbundenen Kontos.
- Mandatskennzeichen auf diesem PC — WEG, Mandantenakte, Steuerbescheid. Kennzeichen sind lokal, keine Kanzlei-Datenbank im Netz.
- Lokales Archiv des ganzen Ordners — Nachrichten abrufen speichert den gesamten IMAP-Ordner in
mail.dbplus.emlauf der Platte (kein Last-N-Fenster). FTS über Betreff, Text, PDF-/XML-/HTML-/CSV-/JSON-Anlagen und Kennzeichen. - Bedeutungssuche auf dem Gerät (RAG) — optionales EmbeddingGemma 300M unter Einstellungen → Indizes…. Vektoren bleiben in
mail.db. Mail verlässt den Rechner nicht. Stichwort- und Bedeutungsindex neu aufbauen oder reparieren. - Regeln über Postfächer hinweg — verschieben, löschen, kennzeichnen, etikettieren; der Zielordner kann auf einem anderen Konto liegen, auch auf einem Ordnerspeicher. Import von JSON oder einer älteren
.rwz-Datei; Export ist JSON. - Ordnerspeicher — Verzeichnis mit
.emlund eigenermail.dbanlegen, anhängen, verschieben oder lösen. PST/OST importieren… kopiert die Post in einen Speicher; die.pstist kein Postfach. Standardpfad:%LocalAppData%\Postclient\stores\{Name}(portabel:{Installation}/data/stores/{Name}). - Easy Migration — Datei → Easy Migration → Bundle erstellen… fragt die Passphrase zweimal im selben Fenster, dann Speichern. Das
.postbundleenthält Post, Konten, Geheimnisse und den gemeinsamen Modellordner. Bundle öffnen… stellt es in den Postclient-Ordnern dieses PCs wieder her. Die Hintergrundsync bleibt aus. - Hintergrundsync — Einstellungen → Hintergrundsync für dieses Konto…: ein Dienst beim Start (Windows-Dienst, systemd-Systemunit unter Linux). Er synchronisiert jedes gespeicherte Postfach, ohne dass jemand angemeldet ist.
- Spam — Als Spam markieren merkt sich diese Nachricht auf diesem PC und lehrt jedes Postfach, auch nachdem Nachricht oder Postfach weg sind. Ähnliche Post ist nur ein Hinweis. Kein Spam löscht diese Erinnerung und legt die Nachricht zurück in den Posteingang. Verschieben nach Junk lehrt den Filter nicht.
- Länderpakete — Einstellungen → Funktionen schaltet Italien (PEC, FatturaPA, Fascicolo), Europa (eIDAS-REM), Frankreich, Deutschland, Spanien und die Schweiz ein oder aus. Gewöhnliches IMAP bleibt verfügbar.
Zielgruppen
Privatpersonen
Alltäglicher Client für eine oder mehrere Adressen: Gmail oder Microsoft 365 neben einem persönlichen PEC-Postfach (Italien) oder einem IMAP-REM-Postfach (EU). Eine Hausverwaltung, eine Steuerakte oder ein Behördenbrief bleibt durchsuchbar, ohne Originale auf fremden Servern zu lassen.
Typische Nutzung: zertifizierte und gewöhnliche Post in einem Fenster; sehen, ob der Gestore angenommen und hinterlegt hat; drucken oder als PDF speichern; die originale .eml exportieren, wenn Gemeinde, Bank oder Gericht sie verlangt.
Kanzleien und Agenturen
Nötig, wenn zertifizierte Identitäten nicht vermischt werden dürfen: persönliche PEC, Kanzlei-PEC, gewöhnliche Mail. Ein Anwalt, Steuerberater, Notar, Hausverwalter oder eine EU-Kanzlei mit Behördenverkehr kann jedes Betreiber-Postfach getrennt halten (IMAP-QUOTA in der Statusleiste), Versand und dazugehörige Nachweise gruppieren und ein Fascicolo exportieren, ohne die Akte in ein Drittarchiv zu laden.
Das Programm ersetzt den Gestore nicht, stellt keinen qualifizierten Nachweis aus und verteilt Mandatskennzeichen nicht über die PCs der Kanzlei.
Konten und Protokolle
Eingang: IMAP (Ordnerbaum), POP3 (nur Posteingang) oder ein lokaler Ordnerspeicher. Eine Unicode-.pst lässt sich weiterhin in einen Speicher importieren. Ausgang: SMTP. Verschlüsselung: Auto, SSL/TLS, STARTTLS, STARTTLS falls verfügbar, oder keine. MailKit nutzt die SASL-Verfahren, die der Server anbietet.
Mehrere Postfächer sind speicherbar. Profile füllen Hosts und Ports:
| Profil | Rolle |
|---|---|
| Gmail | IMAP/SMTP; Anmeldung bei Google (OAuth2 / XOAUTH2) oder Gmail-App-Passwort |
| Microsoft 365 | IMAP/SMTP; Anmeldung bei Microsoft. Die meisten dieser Konten lehnen das Postfachpasswort ab |
| IT PEC — Aruba, Legalmail, Namirial, Poste Italiane, Register.it, Libero | IMAP/SMTP-Hosts des italienischen Gestore (Hostnamen in der englischen README) |
| EU — Intesi Group | imap.ig-trustmail.com / smtp.ig-trustmail.com |
| IMAP / POP3 | Jeder Host, den der Betreiber mitgeteilt hat. Postfachart auf italienische PEC oder EU-REM setzen, wenn das Postfach zertifiziert ist (auch mit eigener Domain) |
| Ordnerarchiv | Ordner auf der Platte (postclient.store.json + mail.db + .eml). Kein Passwort, kein SMTP. Anlegen, anhängen, verschieben oder lösen über das Dateimenü. |
Zertifizierte IMAP-Postfächer nutzen das Gestore-Passwort oder ein App-Passwort bei 2FA. De-Mail ist in der Regel kein IMAP. Dasselbe gilt für AR24 (Frankreich), IncaMail (Schweiz) und Lleida (Spanien). Hat der Betreiber IMAP/POP3-Hosts genannt, wählen Sie IMAP / POP3. Sonst öffnet dieser Client das Postfach nicht; ETSI-REM-Nachweise auf importierten .eml kann er trotzdem anzeigen.
Gmail und Microsoft 365 laufen über Identity Hub (https://identity.maks-it.com). Kontoeinstellungen öffnen /desktop-login?provider=Google oder Microsoft. Hub-JWT und Refresh-Token bleiben in secrets.bin; IMAP nutzt ein kurzlebiges Mailbox-Token (XOAUTH2). Beim Verbinden erneuert der Client die Hub-Sitzung aus dem Refresh-Token, damit Gmail und Outlook nach dem Beenden angemeldet bleiben. Hat ein älterer Build nur das JWT gespeichert, einmal neu in den Kontoeinstellungen anmelden. Override: POSTCLIENT_IDENTITY_HUB. Passwort bleibt für PEC und generisches IMAP gültig.
Passwörter und OAuth-Refresh-Token liegen neben den Einstellungen (DPAPI unter Windows, Dateimodus 600 unter Linux/macOS), nie in settings.json.
Italienische PEC (posta elettronica certificata)
Die PEC ist ein Umschlag des Gestore:
- Transportnachricht mit
X-Trasporto: posta-certificata,daticert.xmlund Original inpostacert.eml; - Nachweise (
X-Ricevuta) in Posteingang und Ricevute: accettazione, presa-in-carico, avvenuta-consegna, non-accettazione, mancata-consegna, Virus, Fehler-Vorankündigung.
Ansicht → Unwrap PEC/REM envelope zeigt das innere postacert.eml. Die Spalte Typ kennzeichnet PEC (Transport) oder RIC (Nachweis).
Italienische PEC hat keine Lesebestätigung. Avvenuta consegna heißt Hinterlegung im zertifizierten Postfach des Empfängers, nicht dass eine Person die Nachricht geöffnet hat.
Europäische REM (eIDAS registered electronic mail)
Trägt die Nachricht ETSI-REM-Nachweis (REMEvidence / urn:etsi:rem oder einen Teilnamen remevidence / rem-md), behandelt der Client sie als REM. Ereignisse landen in derselben Zustellspalte wie bei der PEC:
SubmissionAcceptance→ der QTSP hat angenommen;Delivery/ LRE- bzw. AR24-Avis / De-Mail-Zustellung / acuse de recibo → hinterlegt;ContentConsignment/Retrieval/ De-Mail-Abholbestätigung → der Empfänger hat den Inhalt abgeholt (nächstes europäisches Pendant zu „gelesen“);- Ablehnung, Virus, Nichtzustellung,
DeliveryExpiration→ fehlgeschlagen.
S/MIME (smime.p7s / smime.p7m) erscheint als digital signiert; das ist weder PEC noch REM.
Zustellspalte nach dem Senden
Nach dem SMTP-Versand speichert Postclient die ausgehende Message-Id und gleicht beim Öffnen von Gesendet die Nachweise aus Posteingang und Ricevute ab. Das Warten gilt nur für PEC- oder REM-Konten (Profil oder IMAP/POP3 mit dieser Postfachart). Gewöhnliches Gmail, Microsoft 365 und IMAP gelten nur als gesendet. Zuordnung der Reihe nach: <msgid> in daticert.xml, X-Riferimento-Message-ID, In-Reply-To, PEC-identificativo, dann Betreffpräfixe (ACCETTAZIONE:, CONSEGNA:, AVIS DE RECEPTION:, ACUSE DE RECIBO:, ZUSTELLBESTAETIGUNG:, ABHOLBESTAETIGUNG:, …).
| Nachweis | Status | Bedeutung |
|---|---|---|
PEC accettazione / presa-in-carico, ETSI SubmissionAcceptance |
Angenommen | Der Gestore hat die Nachricht übernommen |
PEC avvenuta-consegna, ETSI Delivery, LRE/AR24-Avis, Zustellung |
Zugestellt | Hinterlegt im zertifizierten Postfach — PEC bestätigt nicht das Lesen |
ETSI ContentConsignment / Retrieval, Abholbestätigung |
Abgeholt | Der Empfänger hat den Inhalt abgeholt |
non-accettazione, mancata-consegna, Virus, ETSI-Ablehnung |
Fehlgeschlagen | Der Gestore meldet Annahme- oder Zustellfehler |
Der Client zeigt den Nachweis des Betreibers. Er stellt keinen qualifizierten Nachweis, PEC-Umschlag oder Zeitstempel aus.
Systemhinweise erscheinen bei neuer PEC, neuen Ricevute und neuer REM (Windows-Toast, macOS-Mitteilung, notify-send unter Linux).
Lesen, Ordner, Verfassen
- Der Baum folgt dem Server (Posteingang, Ricevute, Entwürfe, Gesendet, Archiv, Junk, Papierkorb, plus eigene Ordner). Verschachtelte IMAP-Pfade erscheinen als Unterordner, auch Gmail-Labels
[Gmail]/…unter[Gmail]. Entwürfe, Gesendet und Papierkorb alsINBOX.Drafts/INBOX.Sent/INBOX.Trashstehen neben dem Posteingang, nicht darunter. Gmail trennt mit/, daher bleibt ein Label wieP.IVAein Ordner. Systemordner lassen sich nicht löschen. Ordner anlegen, leeren (in den Papierkorb bzw. endgültig im Papierkorb), alles gelesen/ungelesen, eigenen Ordner löschen, Nachrichten auf einen Ordner ziehen. Welche Konten und Unterordner aufgeklappt oder zugeklappt sind, bleibt insettings.json. - Spalten: ungelesen, Kennzeichnung, Anlagen, Zustellung, Typ (PEC / RIC / REM / SIG), von, Betreff, Datum (lokal
yyyy-MM-dd HH:mm), Größe, Mandatskennzeichen. - Ansicht: HTML (Web-Engine des Systems), Text, Quelltext oder FatturaPA. Layout: Liste über dem Lesen, oder drei Spalten (Ordner, Liste, Lesen).
- Unterhaltungen gruppieren rückt Antworten in der Liste ein (Message-ID / In-Reply-To / References, Tiefe bis 8). PEC-Nachweise zum selben Original stehen beieinander. Es gibt kein eigenes Unterhaltungsfenster.
- Aktionen: antworten, allen antworten, weiterleiten, in neuem Fenster, gelesen/ungelesen, Kennzeichnung, Priorität, als Spam markieren, kein Spam, löschen. Umschalt+Klick und Strg+Klick wählen mehrere Nachrichten oder Ordner. Löschen (Leiste, Entf, Ordner leeren) verschiebt die Auswahl in den Papierkorb. Aus dem Papierkorb ist Löschen endgültig.
- Das Verfassen ist Klartext. An, Cc, Bcc sind Adress-Chips. Anlagen als ZIP senden packt per Drag-and-Drop übergebene Dateien (optionales Passwort). Der Versand nutzt nur die SMTP-Identität des gewählten Postfachs.
HTML: WebView2 unter Windows, WebKitGTK unter Linux, WKWebView unter macOS. Fehlt die Engine, erscheint der Textkörper.
Linux-Pakete für die HTML-Ansicht:
sudo apt install libgtk-3-0 libwebkit2gtk-4.1-0 libsoup-3.0-0
Fedora: gtk3 webkit2gtk4.1 libsoup3.
Lokales Archiv, Stichwortsuche und Bedeutungsindex
„Nachrichten abrufen“ indiziert den gesamten IMAP-Ordner in SQLite (mail.db) plus .eml auf der Platte. POP3 füllt nur den Posteingang. Die Indizierung läuft im Hintergrund; die Statusleiste zeigt den Fortschritt.
- Einstellungen → Indizes…: Stichwortindex (FTS) und optional EmbeddingGemma 300M (~300 MB) für Bedeutung. Das ONNX-Paket wird einmal in den Maschinenordner geladen (
ProgramData\MaksIT\Postclient\models, unter Linux/var/lib/maksit/postclient/models) und von jedem Konto und dem Sync-Dienst geteilt. Vektoren bleiben inmail.dbauf diesem PC. Gerät: Auto / CPU / GPU (Windows DirectML). Index neu aufbauen oder reparieren, wenn die Suche falsch wirkt. Die Gewichte unterliegen Googles Gemma-Bedingungen. Spam-Markierungen… listet, was der Filter gelernt hat.
Die Suche (aktueller Ordner) umfasst Betreff, Text, Anlagentext (PDF sowie text/XML/HTML/CSV/JSON), Mandatskennzeichen und Bedeutung, sobald das Modell bereit ist. Das Suchfeld hat ein ×, das den Text löscht. Kennzeichen existieren nur auf diesem PC.
Das Archiv liegt nur auf diesem PC. Datei → Archivordner öffnen / Archiv exportieren kopiert mail.db und die .eml. Pfade:
| OS | Konfiguration | Daten |
|---|---|---|
| Windows | %AppData%\Postclient\ |
%LocalAppData%\Postclient\ |
| Linux | ~/.config/postclient/ |
~/.local/share/postclient/ |
| macOS | ~/Library/Application Support/Postclient/ |
dasselbe |
Override: POSTCLIENT_CONFIG / POSTCLIENT_DATA_DIR. Das portable Windows-Zip mit installType: portable in settings.json hält die Konfiguration neben der EXE.
Das IMAP-QUOTA des Gestore (wenn der Server es anbietet) steht in der Statusleiste. Das ist der Speicher beim Betreiber, kein Cloud-Speicher dieser Anwendung.
Import, Export, Druck
| Aktion | Ergebnis |
|---|---|
| EML importieren | Originale in den aktuellen Ordner |
| mbox importieren | Lokale mbox-Stores aus einem Desktop-Mailprofil |
.pst / .ost importieren |
Kopiert Outlook-Post in einen Ordnerspeicher (vorgeschlagener Pfad unter stores/ in den App-Daten). Ein erneuter Import in denselben Speicher überspringt Dubletten nach Message-ID. Schließen Sie jedes Programm, das die Datei geöffnet hält. |
| Neuer Speicher | Dateimenü: leerer Ordner (Posteingang, Entwürfe, Gesendet, Gelöscht) mit postclient.store.json und mail.db. |
| Speicher anhängen | Dateimenü: Ordner wählen, der schon postclient.store.json hat. |
| Verschieben / lösen | Kopiert das ganze Verzeichnis oder nimmt es aus der Liste. Der Ordner bleibt auf der Platte, wenn er gelöst wird. |
| Aufbewahrung | Einstellungen → Aufbewahrung…: Tage je Ordner (0 = für immer). Abgelaufene Ordnerpost geht nach dem Abruf in den Papierkorb. Beim Papierkorb behält 0 ihn für immer, eine Tageszahl löscht alten Papierkorb endgültig. |
| Hintergrundsync | Einstellungen → Hintergrundsync für dieses Konto…: Dienst beim Start (Windows-Dienst, systemd-Systemunit unter Linux). Synchronisiert jedes gespeicherte Postfach ohne Anmeldung. Dieses Konto teilen lässt nur andere Personen auf diesem PC das Postfach öffnen. |
| Geteiltes Konto | Kontoeinstellungen → Dieses Konto mit anderen Benutzern dieses PCs teilen: das Postfach zieht in den Maschinenordner (ProgramData\MaksIT\Postclient, oder Public, wenn ProgramData nicht beschreibbar ist; /var/lib/maksit/postclient unter Linux; /Users/Shared/MaksIT/Postclient unter macOS). Andere Benutzer sehen es, wenn sie Postclient öffnen. Kennwörter werden nicht kopiert. |
| Easy Migration | Datei → Easy Migration → Bundle erstellen… fragt die Passphrase zweimal im selben Fenster, dann Speichern. Das .postbundle enthält Post, Konten, Geheimnisse und den gemeinsamen Modellordner. Bundle öffnen… stellt es auf diesem PC wieder her und schreibt Speicherpfade um. Die Hintergrundsync bleibt aus. |
| Spam-Markierungen | Als Spam markieren merkt sich diese Nachricht auf diesem PC und lehrt jedes Postfach, auch nachdem Nachricht oder Postfach weg sind. Ähnliche Post ist nur ein Hinweis. Kein Spam löscht diese Erinnerung und legt die Nachricht zurück in den Posteingang. Verschieben nach Junk lehrt den Filter nicht. Einstellungen → Indizes… → Spam-Markierungen… listet, was gelernt wurde. |
| Updates und Protokoll | Hilfe → Nach Updates suchen… fragt GitHub nach der neuesten Version und kann das Paket für dieses System laden. Hilfe → Protokoll öffnet ein kopierbares Fenster über den Protokollordner. Hilfe → Über Postclient listet Info, Privacy, Security und Support auf maks-it.com. |
| Regeln | Einstellungen → Regeln: Regeln importieren… liest den JSON-Export dieser App oder eine ältere .rwz-Datei. Regeln exportieren… schreibt JSON. Jede Regel gehört zu einem Konto; ein Zielordner kann auf einem anderen Postfach liegen (auch einem Speicher). Sie laufen beim Abrufen, beim Import und unter Alle Regeln ausführen. |
| Lesbares HTML der (ggf. ausgepackten) Nachricht | |
| PDF speichern | Derselbe Inhalt als PDF |
| Anlagen-ZIP | Alle Anlagen der geöffneten Nachricht |
| Ausgewählte EML exportieren (Fascicolo) | Die originalen .eml — was Notar oder Behörde als Nachricht aufbewahren können |
Geöffnete Nachrichten liegen zusätzlich als .eml im Datenordner. Die .eml sind die Originale; PDF und Druck sind eine Lesekopie.
Oberfläche
Ansicht → Sprache: English, Italiano, Français, Deutsch oder Español. Serverseitige Ordnernamen (Posta in arrivo, Gesendet, Messages envoyés, Enviados, …) werden Posteingang / Gesendet / … in der UI-Sprache zugeordnet.
Länderpakete
Einstellungen → Funktionen ist eine Matrix nur für zertifizierte Post. Gewöhnliches IMAP/POP3, Suche, Mandatskennzeichen, mbox-/.pst-Import und angehängte Datendateien bleiben an. Zeilen sind zertifizierte Funktionen; Spalten sind Italien, Europa, Frankreich, Deutschland, Spanien, Schweiz. Die Kopf-Checkbox schaltet die ganze Spalte.
| Paket | Was es freischaltet | Standard |
|---|---|---|
| Italien | PEC-Umschlag / Nachweise / Zustellung, PEC-Profile, FatturaPA-Vorschau, Fascicolo | An |
| Europa | eIDAS-REM-Nachweis, Intesi-REM-Profil | An |
| Frankreich / Deutschland / Spanien / Schweiz | Nachweisbeschriftungen (AR24/LRE, De-Mail, Lleida, IncaMail). Diese Netze sind in der Regel kein IMAP. | Aus |
Ein Paket auszuschalten blendet Menüs, Spalten und Profile aus. Vorhandene Postfächer bleiben; nur die Extra-UI verschwindet.
Downloads
Wenn ein GitHub-Release existiert: portables Windows-Zip und Setup (postclient-{version}.exe, eigenständig — kein .NET-SDK auf dem PC; Standardpfad C:\Program Files\MaksIT\Postclient), Linux-Flatpak, macOS-DMG (osx-arm64 und osx-x64). macOS-Builds sind unsigniert: beim ersten Start Öffnen im Kontextmenü.
Linux (Flatpak)
flatpak install --user ./postclient-{version}.flatpak
flatpak run eu.postclient.desktop
Build, Tests und Release: englische README.
Lizenz
Apache License 2.0. Copyright 2026 Maksym Sadovnychyy (MAKS-IT).