Files
janssen/mailstore/imap_search_test.py
2026-06-11 21:49:04 +02:00

55 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""Test IMAP SEARCH proti MailStore serveru — ověření rychlosti a funkčnosti."""
import imaplib
import ssl
import sys
import time
HOST = "192.168.1.53"
PORT = 143
USER = "admin"
PASS = "*$N(B)vMUym!%"
def connect():
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
M = imaplib.IMAP4(HOST, PORT)
M.starttls(ssl_context=ctx)
M.login(USER, PASS)
return M
def main():
t0 = time.time()
M = connect()
print(f"[{time.time()-t0:.1f}s] připojeno + login", flush=True)
# Přímý SELECT na konkrétní složku (LIST cizí archivy neukáže, SELECT ano)
target = "vladimir.buzalka@buzalka.cz/Exchange vladimir.buzalka/Sent Items"
typ, data = M.select(f'"{target}"', readonly=True)
count = int(data[0]) if typ == "OK" and data and data[0] else 0
print(f"[{time.time()-t0:.1f}s] SELECT '{target}' = {count} zpráv (typ={typ})", flush=True)
if count == 0:
M.logout()
return
# Test SEARCH různých kritérií
for crit, val in [("ALL", None), ("SUBJECT", "re"), ("FROM", "cz"), ("TEXT", "objednávka")]:
ts = time.time()
if val is None:
typ, data = M.search(None, crit)
else:
typ, data = M.search(None, crit, f'"{val}"')
nums = data[0].split() if data and data[0] else []
label = crit if val is None else f'{crit} "{val}"'
print(f"[{time.time()-t0:.1f}s] SEARCH {label}: {len(nums)} výsledků ({time.time()-ts:.2f}s)", flush=True)
M.logout()
print(f"[{time.time()-t0:.1f}s] hotovo", flush=True)
if __name__ == "__main__":
main()