Replace webklex/php-imap with directorytree/imapengine in the ticket
email parser. ImapEngine is pure PHP over sockets.
Parser improvements:
- Wrap per-message processing in try/catch so one malformed email
can't abort the run; failures are flagged and logged with UID
- Query unseen + unflagged so previously-failed (flagged) messages
are no longer re-processed on every cron run
- Skip vacation/auto-responder emails (RFC 3834) to prevent mail
loops with the ticket auto-reply
- Cap messages per run (50) and attachment size (15MB); inline
images over 2MB are stored as attachments instead of base64-embedded
in ticket details
- Atomic lock file creation
- preg_quote() the ticket prefix in subject matching
- Dedupe CC watchers and exclude the sender
- Map webklex 'tls' encryption setting to STARTTLS for compatibility
NDR/DSN parsing now walks MIME parts via the underlying
zbateson parser instead of relying on attachment extraction.