maksit-postclient/README.de.md

21 KiB
Raw Permalink Blame History

Postclient — Desktop-Client für PEC, REM und IMAP

Line Coverage Branch Coverage Method Coverage .NET License Platform

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.xml und 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.db plus .eml auf 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 .eml und eigener mail.db anlegen, anhängen, verschieben oder lösen. PST/OST importieren… kopiert die Post in einen Speicher; die .pst ist 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 .postbundle enthä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.xml und Original in postacert.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 als INBOX.Drafts / INBOX.Sent / INBOX.Trash stehen neben dem Posteingang, nicht darunter. Gmail trennt mit /, daher bleibt ein Label wie P.IVA ein 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 in settings.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 in mail.db auf 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.
Drucken 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).