# DRE Mail IMAP Poller A lightweight, no-dependency IMAP poller that checks DRE mailboxes and serves as a unified inbox JSON endpoint for the DRE portal. ## Script Location `/root/.hermes/scripts/dre-mail-poller.py` ## How It Works - Polls both `dre@debtrecoveryexperts.com` and `collections@debtrecoveryexperts.com` on `heracles.mxrouting.net:993` - Fetches UNSEEN messages only (leaves them unread in the mailbox) - Parses: from, to, subject, date, body (500-char preview + full body), claim_match (DRE-\d{4}-\d{4} pattern) - Deduplicates by `mailbox:uid` composite key - Maintains rolling 500-entry JSON database - Writes to `/var/www/internal/data/dre-mails.json` ## Output Format ```json [ { "uid": 12345, "mailbox": "dre", "from": "client@example.com", "to": "dre@debtrecoveryexperts.com", "subject": "Question about my claim DRE-2026-0142", "date": "2026-07-08 14:30:00", "body_preview": "Hi, I had a question about the status of...", "body": "Full body text...", "is_read": false, "claim_match": "DRE-2026-0142" } ] ``` ## Cron Runs every 60 seconds via Hermes cron job `dre-mail-poller` (no_agent mode — zero token cost). The script is self-contained Python stdlib — no pip dependencies. ## Access Served at `internal.debtrecoveryexperts.com/data/dre-mails.json` (already covered by existing Caddy config — no changes needed). ## Portal Integration A future inbox UI page can fetch from this endpoint and render in the portal. No build step needed — pure JS fetch from the static JSON endpoint. ## Mailbox Credentials - IMAP: heracles.mxrouting.net:993 - dre@debtrecoveryexperts.com / collections@debtrecoveryexperts.com - Same password for both