Begin improving the soundness of received mail

Summary:
We/I broke a couple of things here recently (see D5911) and are doing some work here in general (see D5912, etc.).

Generally, this code is pretty oldschool and not especially well architected for modern application-oriented Phabricator. It hardcodes a lot of stuff which should be applications' responsibilites.

Take the first steps toward making it more solid to reduce the risk here. In particular:

  - Factor out the "self mail" and "duplicate mail" checks and add unit tests.
  - Make Message-ID hash handling automatic.

Test Plan: Ran unit tests.

Reviewers: btrahan, chad

Reviewed By: btrahan

CC: aran

Differential Revision: https://secure.phabricator.com/D5915
This commit is contained in:
epriestley
2013-05-13 16:32:19 -07:00
parent 99f648e4eb
commit eabe3a4d33
10 changed files with 180 additions and 44 deletions

View File

@@ -34,9 +34,6 @@ $received->setBodies(array(
'text' => $text_body,
'html' => $parser->getMessageBody('html'),
));
$received->setMessageIDHash(
PhabricatorHash::digestForIndex($received->getMessageID())
);
$attachments = array();
foreach ($parser->getAttachments() as $attachment) {