Files
janssen/Feasibility/jnj_scan_failed_sent_v1.0.md
2026-06-17 15:05:10 +02:00

46 lines
2.0 KiB
Markdown

# jnj_scan_failed_sent_v1.0.py
**Verze:** 1.0 · **Datum:** 2026-06-16
JNJ-native (pywin32 / MAPI). Projde **Sent Items za posledních N dní** (default 60),
najde **podezřelé = pravděpodobně neodeslané** e-maily, uloží je jako `.msg`
a vypíše, které příznaky se trefily. **Nic neodesílá ani nemaže.**
## Příznaky (čteno ze ŽIVÉ položky)
- **FAIL_BODY** (silný) — tělo / ReportText obsahuje „could not be sent",
„SendAsDenied", „permission to send the message on behalf",
„TransportSend operation has failed", „MapiExceptionSendAsDenied".
- **SENDAS_BUZ** (silný) — `PrimarySendAccount` (0x0E28) / SentRepresenting (0x0065)
/ Sender (0x0C1F) obsahuje `buzalka.cz` → posíláno přes špatnou identitu.
- **NO_MSGID** (slabý) — chybí Internet Message-ID (0x1035); může být i
provizorní kopie, co se později dokončí.
`STRONG_*` soubory = silný příznak (skoro jistě neodesláno).
`weak_*` soubory = jen NO_MSGID.
## Spuštění (JNJ stroj s Outlookem)
```
pip install pywin32
python jnj_scan_failed_sent_v1.0.py
```
## Konfigurace
- `DAYS` = okno (default 60).
- `OUTPUT_DIR` = kam ukládat `.msg` (default `C:\Users\vbuzalka\sent_suspects`).
- `INCLUDE_NO_MSGID` = ukládat i jen-NO_MSGID položky (default True; dej False,
když chceš jen tvrdé FAIL/SENDAS).
- `SENDER_SMTP` = účet, jehož Sent Items se skenuje.
## Postup
1. Spusť na JNJ → ve výpisu uvidíš podezřelé + uložené `.msg`.
2. Přines `.msg` z `OUTPUT_DIR` domů → olefilem je projdeme a potvrdíme,
které opravdu neodešly (a komu je třeba poslat znovu se správným From).
## Pozn.
- Okno 60 dní = výkon (řazeno SentOn desc, starší se přeskočí brzy).
- Detekce funguje nad **živou** položkou (čerstvý SaveAs) — proto se pouští
přímo na JNJ, ne nad starými batch kopiemi.
- Hlavní příčina selhání: From = `vladimir.buzalka@buzalka.cz` na účtu
`vbuzalka@its.jnj.com` bez SendAs → Exchange odmítne. Viz paměť
project_jnj_unsent_detection.