z230
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# 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).
|
||||
- `ACTION` — `display` (default, jen otevře) / `draft` / `send`.
|
||||
|
||||
## Kde vzít EntryID dalších lékařů
|
||||
JNJ SQLite, tabulka `messages`:
|
||||
```sql
|
||||
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čí.
|
||||
Reference in New Issue
Block a user