Page MenuHomePhorge

Fix parsing of incoming mail with UTF-8 encoded headers
Needs ReviewPublic

Authored by aklapper on Tue, Nov 26, 13:47.

Details

Summary

rPa76444a8e238f647dc96f756e6c88aa2fafcdbfe updated our 13 year old copy of the mimemailparser library.
That included a behaviour change in the library not covered by Phorge code: The library now decodes MIME encoded UTF8 data in headers. Phorge passes that header to the iconv_mime_decode() PHP function which does not accept already encoded content.

EXCEPTION: (RuntimeException) iconv_mime_decode(): Detected an illegal character in input string at [<arcanist>/src/error/PhutilErrorHandler.php:273]
arcanist(head=master, ref.master=29ca3df1122b), phorge(head=master, ref.master=6ec5c88bee24)
  #0 PhutilErrorHandler::handleError(integer, string, string, integer)
  #1 iconv_mime_decode(string, integer, string) called at [<arcanist>/src/utils/utils.php:1759]
  #2 phutil_decode_mime_header(string) called at [<phorge>/scripts/mail/mail_handler.php:64]

Closes T15960

Test Plan
  • Have an email file called tmp.mbox with a UTF-8 encoded From: header. In scripts/mail/mail_handler.php, replace file_get_contents('php://stdin') with file_get_contents('./tmp.mbox'). Insert echo $headers['subject']; echo "\n"; echo $headers['from']; statements for debugging. Run php ./mail_handler.php.

Diff Detail

Repository
rP Phorge
Branch
T15960 (branched from master)
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 1628
Build 1628: arc lint + arc unit