Files
janssen/Feasibility/forward_offer_outlook_v1.1.md
2026-06-16 14:32:28 +02:00

1.8 KiB

forward_offer_outlook_v1.1.py

Verze: 1.1 · Datum: 2026-06-16

JNJ-native skript (pywin32 / MAPI). Pro daného lékaře vytvoří skutečný Outlook Forward jeho původní úvodní nabídky (zachová originál včetně data 31.05.2026, formátování i hlavičky).

Změna oproti v1.0

  • Primárně hledá zprávu přímo podle jednoznačného EntryID (MAPI) přes Namespace.GetItemFromID(entry_id, store_id) → nalezení „na první dobrou", nulová nejednoznačnost.
  • EntryID se bere z JNJ SQLite (messages.entry_id). Pro Huštáka je už předvyplněný v TARGETS.
  • Fallback (když EntryID nesedne) = původní heuristika subjekt + datum 31.05.2026 + příjemce To.

Spuštění (JNJ stroj s Outlookem)

pip install pywin32
python forward_offer_outlook_v1.1.py

Konfigurace

  • TARGETS — list {"email", "entry_id"}. Defaultně jen Hušták (ostatní zakomentované; doplň jim EntryID ze SQLite, jinak poběží fallback).
  • CC_RECIPIENTS — Kocourková + Bartošová.
  • ADD_INTRO / INTRO_HTML — krátký úvod nad forwardem (False = čistý forward).
  • ACTIONdisplay (default, jen otevře) / draft / send.

Kde vzít EntryID dalších lékařů

JNJ SQLite, tabulka messages:

SELECT entry_id, subject, received_at, source
FROM messages
WHERE source LIKE '%<FC...msg-nazev>%';

(message_id je tam uložený jako entryid: + EntryID; sloupec entry_id obsahuje čistý EntryID. Internet Message-ID <…@…> v datech NENÍ — .msg jsou X-Unsent drafty, RFC Message-ID přiděluje až Exchange při odeslání.)

Pozn.

  • GetItemFromID zkusí variantu se store_id i bez něj.
  • display nevyvolá Outlookový „program se snaží odeslat" dialog.
  • Když se nenajde ani EntryID, ani jednoznačný fallback → lékaře přeskočí.