Page MenuHomePhabricator

Fix inbound mail handling for messages with no HTML body part
ClosedPublic

Authored by epriestley on Nov 22 2017, 3:45 PM.
Tags
None
Referenced Files
F19894372: D18778.id.diff
Sat, Mar 28, 2:12 PM
F19865232: D18778.id45061.diff
Mar 14 2026, 2:58 PM
F19846060: D18778.diff
Mar 12 2026, 9:17 AM
F19824020: D18778.id45061.diff
Mar 7 2026, 6:21 PM
F19789085: D18778.id.diff
Feb 25 2026, 5:17 PM
F19741009: D18778.id45065.diff
Feb 15 2026, 10:10 AM
F19618076: D18778.id45061.diff
Feb 4 2026, 7:33 AM
F19509311: D18778.diff
Jan 10 2026, 5:45 PM
Subscribers
None
Tokens
"Love" token, awarded by catalindazoot.

Details

Summary

See D18776. See https://discourse.phabricator-community.org/t/cant-create-maniphest-tasks-by-email/754/2.

The change in D18776 to improve handling of non-utf8 HTML parts broke handling of mail with no HTML parts. Partly, this is because MimeMailParser has a "traditional" PHP-style API where the return type is an exciting surprise.

Test Plan
  • Sent a text-only message in Mail.app.
  • Used "Show Raw" to copy it to mail.txt, verifying that the raw message contains ONLY a text body.
  • Ran cat mail.txt | ./scripts/mail/mail_handler.php --trace --process-duplicates.
    • Before patch: error about bad idx() on a non-array.
    • After patch: clean mail processing.
  • Did the same with a message with both HTML and text bodies to make sure I didn't break anything.

Ideally we'd probably get test coverage on this, but it's been touched roughly once a year since 2013 so it'll probably hold.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable