---
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.
