2.0 KiB
2.0 KiB
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) obsahujebuzalka.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(defaultC:\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
- Spusť na JNJ → ve výpisu uvidíš podezřelé + uložené
.msg. - Přines
.msgzOUTPUT_DIRdomů → 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.czna účtuvbuzalka@its.jnj.combez SendAs → Exchange odmítne. Viz paměť project_jnj_unsent_detection.