Ref T10709. Two issues:
- If a user sends an invalid !command, we can throw, which means we don't return HTTP 200. This makes Mailgun re-send the mail later.
- We don't parse headers of the modern API correctly, so the "Message-ID" failsafe doesn't work. Parse them correctly. I believe Mailgun's API changed at some point.