Files
janssen/EmailsImport/jnj_mailbox_sync_v1.2.md
T
2026-06-10 20:16:38 +02:00

2.3 KiB

jnj_mailbox_sync v1.2.0

Soubor: jnj_mailbox_sync_v1.2.py Datum: 2026-06-10 Autor: vladimir.buzalka Běží: JNJ stroj (Outlook MAPI), Python z Thonny.

Co to je

Synchronizace JNJ Outlooku (MAPI) → osobní schránka (přes msgreceiver) + bookkeeping v SQLite (C:\Users\vbuzalka\SQLITE\jnjemails.db). Sleduje přesuny e-mailů mezi složkami a příznak „už není ve schránce" — bez opětovného přenosu těla. Skenované složky: Inbox + Sent Items + Deleted Items (vč. podsložek).

Novinka v1.2 — komprimovaný + šifrovaný upload SQLite

Dřív se ~37 MB SQLite posílalo na /upload-db plain (jen HTTPS+token). Teď upload_db():

  1. Komprese na maxlzma (xz), preset 9 | PRESET_EXTREME (stdlib).
  2. Šifrování — stávající Fernet (klíč odvozený z TOKENu, sha256 → urlsafe_b64).
  3. Upload jako jnjemails_<ts>.db.xz.enc.

Přijímací msgreceiver /upload-db (app.py ≥ v2.1) soubor Fernetem dešifruje, lzma rozbalí a uloží plain .db do /msgs/db. Domácí jnj_tower_ingest tím pádem zůstává beze změny (čte nejnovější plain .db read-only).

Důvod šifrování: bezpečný průchod přes JNJ proxy (Zscaler/DLP) — stejný vzor jako .emsg u jednotlivých .msg. Round-trip ověřen (bajt na bajt).

Závislost na serveru

⚠️ Vyžaduje msgreceiver app.py ≥ v2.1. Server bere .db.xz.enc i starý plain .db, takže nasazovací pořadí je server → JNJ bez výpadku.

Argumenty

--mode {capture,update-paths,full-update} (default capture), --days N (0 = celé), --dry-run, --limit N, --no-db-upload.

Spouštění (JNJ stroj, plné cesty)

"C:\Users\vbuzalka\AppData\Local\Programs\Thonny\python.exe" "c:\Users\vbuzalka\OneDrive - JNJ\##JNJPrenos\Python\jnj_mailbox_sync_v1.2.py" --mode full-update --days 30

Revert

Stará verze: Trash/jnj_mailbox_sync_v1.1.py (plain DB upload). Server zůstává zpětně kompatibilní, takže revert na JNJ straně nevyžaduje zásah na serveru.

Historie

  • 1.0.0 — režimy capture/update-paths/full-update, sledování přesunů, updated_at.
  • 1.1.0 — + Deleted Items do skenovaných složek.
  • 1.2.0 — upload SQLite komprimován (lzma/xz max) + šifrován (Fernet) → .db.xz.enc; vyžaduje msgreceiver app.py ≥ v2.1.