Umbenennung end-to-end gegen lizenzierten Server verifiziert

Mit aktiver Lizenz und laufendem IMAP laesst sich jetzt pruefen, was
vorher offen bleiben musste: ob Kerio die verschobene Mailbox auch
ausliefert.

Ein Benutzer mit gefuellter Mailbox (5 Mails in der INBOX, eine davon
gelesen, eine markiert, dazu eine Mail in einem Unterordner) wurde
umbenannt. Danach: Login mit dem neuen Namen funktioniert, mit dem alten
wird er abgewiesen, alle Mails und Flags sind da, die .eml-Dateien sind
bitgleich, und eine frisch gesendete Mail an die neue Adresse wird
zugestellt, waehrend die alte Adresse mit 550 Mailbox does not exist
antwortet. Kein verwaistes Verzeichnis, GUID und Passwort-Hash
unveraendert.

Geaendert haben sich nur Kerios Index- und Statusdateien, die der Server
ohnehin bei jedem Zugriff neu schreibt.

Der Testnachweis steht als Tabelle in der README.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
duffyduck
2026-08-07 14:20:42 +02:00
co-authored by Claude Opus 5
parent 4d34528c9a
commit c4883d42bb
+27 -1
View File
@@ -11,7 +11,33 @@ Werkzeuge für Kerio Connect auf der Kommandozeile.
Das Script läuft **lokal auf dem Kerio-Server als root**, braucht nur die
Python-Standardbibliothek und bietet `--dry-run`.
Getestet gegen **Kerio Connect 10.0.9 patch 2** auf Debian 12.
## Getestet
Gegen **Kerio Connect 10.0.9 patch 2** auf Debian 12, mit lizenziertem Server
und laufendem IMAP. Ein Benutzer mit gefüllter Mailbox wurde umbenannt und
danach geprüft:
| Prüfung | Ergebnis |
| --- | --- |
| IMAP-Login mit dem neuen Namen | funktioniert |
| IMAP-Login mit dem alten Namen | wird abgewiesen |
| Alle Mails in INBOX und Unterordner | vollständig vorhanden |
| Flags (`\Seen`, `\Flagged`) | erhalten |
| Mail-Dateien (`.eml`), md5 vorher/nachher | bitgleich |
| Neue Mail an die neue Adresse | `Result: delivered` |
| Mail an die alte Adresse | `550 5.1.1 Mailbox does not exist` |
| Verwaistes Verzeichnis unter dem alten Namen | keines |
| GUID und Passwort-Hash des Benutzers | unverändert |
Geändert haben sich nur Kerios eigene Index- und Statusdateien (`.journal.db`,
`status.fld`, `index.fld`) — die schreibt der Server bei jedem Zugriff neu.
Dazu Unit-Tests unter [tests/](tests/):
```bash
python3 tests/test_store.py
python3 tests/test_users_config.py
```
---