#!/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()