Files
mailcat/maak_mappen.py
T
2026-07-20 20:49:36 +02:00

60 lines
1.6 KiB
Python

#!/usr/bin/env python3
"""
Maak alle nieuwe IMAP-mappen aan op australius.nl.
Bestaande mappen worden overgeslagen.
Gebruik: python3 maak_mappen.py
"""
import sys
import imaplib
import config
from imap_utils import list_folders, quote_mailbox
from mail_routes import PREFIX, destination_folders
def mappen() -> list[str]:
"""Alle te maken mappen, zonder prefix (prefix wordt automatisch toegevoegd)."""
return destination_folders()
def run():
cfg = config.load()
print(f"Account: {cfg.username}\n")
print(f"Verbinden met {cfg.imap_host}:{cfg.imap_port} ...")
try:
mail = imaplib.IMAP4_SSL(cfg.imap_host, cfg.imap_port)
mail.login(cfg.username, cfg.password)
except Exception as e:
print(f"Verbinding mislukt: {e}")
sys.exit(1)
existing = set(list_folders(mail))
te_maken = mappen()
print(f"\n{len(te_maken)} mappen te controleren ({len(existing)} bestaan al op server)\n")
aangemaakt = 0
overgeslagen = 0
fouten = 0
for folder in te_maken:
volledige_naam = PREFIX + folder
if volledige_naam in existing or folder in existing:
print(f" ✓ bestaat {folder}")
overgeslagen += 1
continue
status, data = mail.create(quote_mailbox(volledige_naam))
if status == "OK":
print(f" + aangemaakt {folder}")
aangemaakt += 1
else:
print(f" ✗ FOUT {folder}: {data}")
fouten += 1
mail.logout()
print(f"\nKlaar: {aangemaakt} aangemaakt, {overgeslagen} bestonden al, {fouten} fouten.")
if __name__ == "__main__":
run()