diff --git a/src/applications/audit/mail/PhabricatorAuditReplyHandler.php b/src/applications/audit/mail/PhabricatorAuditReplyHandler.php index c215366d0a..f4b77af3f4 100644 --- a/src/applications/audit/mail/PhabricatorAuditReplyHandler.php +++ b/src/applications/audit/mail/PhabricatorAuditReplyHandler.php @@ -1,51 +1,63 @@ getDefaultPrivateReplyHandlerEmailAddress($handle, 'C'); } public function getPublicReplyHandlerEmailAddress() { return $this->getDefaultPublicReplyHandlerEmailAddress('C'); } public function getReplyHandlerDomain() { return PhabricatorEnv::getEnvConfig( 'metamta.diffusion.reply-handler-domain'); } public function getReplyHandlerInstructions() { if ($this->supportsReplies()) { return pht('Reply to comment.'); } else { return null; } } protected function receiveEmail(PhabricatorMetaMTAReceivedMail $mail) { $commit = $this->getMailReceiver(); $actor = $this->getActor(); + $message = $mail->getCleanTextBody(); - // TODO: Support !raise, !accept, etc. - // TODO: Content sources. + $content_source = PhabricatorContentSource::newForSource( + PhabricatorContentSource::SOURCE_EMAIL, + array( + 'id' => $mail->getID(), + )); - $comment = id(new PhabricatorAuditComment()) - ->setAction(PhabricatorAuditActionConstants::COMMENT) - ->setContent($mail->getCleanTextBody()); + // TODO: Support !raise, !accept, etc. - $editor = new PhabricatorAuditCommentEditor($commit); - $editor->setActor($actor); - $editor->setExcludeMailRecipientPHIDs( - $this->getExcludeMailRecipientPHIDs()); - $editor->addComments(array($comment)); + $xactions = array(); + + $xactions[] = id(new PhabricatorAuditTransaction()) + ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT) + ->attachComment( + id(new PhabricatorAuditTransactionComment()) + ->setCommitPHID($commit->getPHID()) + ->setContent($message)); + + $editor = id(new PhabricatorAuditEditor($commit)) + ->setActor($actor) + ->setContentSource($content_source) + ->setExcludeMailRecipientPHIDs($this->getExcludeMailRecipientPHIDs()) + ->setContinueOnMissingFields(true) + ->applyTransactions($commit, $xactions); } }