Emails are fetched via POP3 from MS Live (Outlook OAuth2, see msauth). The dispatcher in process_emails.py reads the To: header and calls the matching handler from the map list.
Handlers that delete from POP3 server return the set of UIDLs to delete; handlers that keep mail on the server return an empty set.
jsr_critchley@hotmail.com → zoneedit_handler.process_zoneedit_mails — ZoneEdit DNS notification emailsjohn.dl@critchley.biz → MyDavidLloydSchedule.process_dl_mails — gym booking schedule extractionjohn.github@critchley.biz → github_ci_handler.process_github_mails — GitHub CI notificationsjohn.vodafone@critchley.biz → vodafone_handler.process_vodafone_mails — classifies bills/service notices/marketing; keeps on serverjohn-medium@critchley.biz → IMAP folder Medium on gravlax, deleted from Livereadingreddit@critchley.biz → IMAP folder reddit on gravlax, deleted from Livejohn.ld@critchley.biz → IMAP folder LibDems on gravlax, deleted from Livejohn.wp@critchley.biz → IMAP folder WashingtonPost on gravlax, deleted from Livejohn.duolingo@critchley.biz → IMAP folder Duolingo on gravlax, deleted from Livejohn4eu@critchley.biz → IMAP folder ForEU on gravlax, deleted from Livejohn.gd@critchley.biz → IMAP folder Glassdoor on gravlax, deleted from Livejohn.q@critchley.biz → IMAP folder Quora on gravlax, deleted from Livejohn.js@critchley.biz → IMAP folder Jobserve on gravlax, deleted from Live (AI processing disabled; see todo)All IMAP routes are config-driven via imap_folders.yml and loaded by imap_deliver.load_routes(). Adding a new route requires only a line in the YAML file. See popit3/imap-delivery for details.
popit3/imap-delivery — imap_deliver.py and imap_folders.yml. popit3/vodafone-handler — Vodafone email classification. popit3/outlook-to-analysis — header store and analysis sheet.
Per-recipient message-size logging (added 2026-07-08): do_processing() logs total/average byte size per recipient alongside the existing count, to help prioritize automation targets. See popit3/process-emails.