notebook
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user