--- name: graph-email-import description: Import JNJ emailů do schránky vladimir.buzalka@buzalka.cz přes Microsoft Graph API metadata: node_type: memory type: project originSessionId: current --- Import emailů z JNJ Outlook schránky do osobní schránky `vladimir.buzalka@buzalka.cz` přes Microsoft Graph API. **Architektura:** - `EmailsImport/janssenpc_email_send_new_v1.4.py` — běží na JNJ PC, posílá .msg + `folder` parametr (plná cesta, např. `/vbuzalka@its.jnj.com/Inbox/TMP`) na `https://msgs.buzalka.cz/upload` - `EmailsImport/DockerCustomApp/app.py` v1.3 — FastAPI kontejner `msgreceiver` na Unraidu, při příjmu .msg s `folder`: 1. Uloží .msg na disk (jako dřív) 2. Parsuje .msg (extract_msg) — subject, body, from, to, cc, datum, přílohy 3. Mapuje JNJ folder cestu na Graph folder pod `Inbox/JNJ/...` 4. Vytváří chybějící složky automaticky 5. Importuje email přes Graph API jako přijatý (ne draft — MAPI property `PR_MESSAGE_FLAGS 0x0E07 = 1`) - Bez `folder` parametru (starý klient) — email se uloží na disk ale neimportuje do Graph (zpětná kompatibilita) **Mapování složek:** - `/vbuzalka@its.jnj.com/Inbox` → `Inbox/JNJ/Inbox` - `/vbuzalka@its.jnj.com/Sent Items` → `Inbox/JNJ/Sent Items` - `/vbuzalka@its.jnj.com/Inbox/TMP` → `Inbox/JNJ/Inbox/TMP` - `/Online Archive - vbuzalka@its.jnj.com/Inbox` → `Inbox/JNJ/Online Archive/Inbox` **Azure AD App (PythonMailer):** - Tenant: `7d269944-37a4-43a1-8140-c7517dc426e9` (TrialHelp s.r.o.) - Client ID: `4b222bfd-78c9-4239-a53f-43006b3ed07f` - Permissions: Mail.Send (Application), Mail.ReadWrite (Application), User.Read (Delegated) — all granted - Credentials v app.py (Docker image), NE na JNJ PC **Logování na JNJ PC:** - `C:\Users\vbuzalka\SQLITE\jnjemails_uploads.log` — každý upload (filename, folder, response) - `C:\Users\vbuzalka\SQLITE\jnjemails_errors.log` — chyby **Staré emaily (69k):** zatím neimportovány, plánován jednorázový batch import. Souvisí s [[dropbox-file-transfer]] — stejný Docker kontejner msgreceiver.