Index: conf/default.conf.php =================================================================== --- conf/default.conf.php +++ conf/default.conf.php @@ -167,6 +167,10 @@ // PhabricatorMailReplyHandler (and possibly of ManiphestReplyHandler). 'metamta.maniphest.reply-handler' => 'ManiphestReplyHandler', + // Prefix prepended to mail sent by Maniphest. You can change this to + // distinguish between testing and development installs, for example. + 'metamta.maniphest.subject-prefix' => '[Maniphest]', + // See 'metamta.maniphest.reply-handler-domain'. This does the same thing, // but allows email replies via Differential. 'metamta.differential.reply-handler-domain' => null, @@ -175,6 +179,9 @@ // affects Differential. 'metamta.differential.reply-handler' => 'DifferentialReplyHandler', + // Prefix prepended to mail sent by Differential. + 'metamta.differential.subject-prefix' => '[Differential]', + // -- Auth ------------------------------------------------------------------ // Index: src/applications/differential/mail/base/DifferentialMail.php =================================================================== --- src/applications/differential/mail/base/DifferentialMail.php +++ src/applications/differential/mail/base/DifferentialMail.php @@ -18,8 +18,6 @@ abstract class DifferentialMail { - const SUBJECT_PREFIX = '[Differential]'; - protected $to = array(); protected $cc = array(); @@ -115,8 +113,12 @@ } } + protected function getSubjectPrefix() { + return PhabricatorEnv::getEnvConfig('metamta.differential.subject-prefix'); + } + protected function buildSubject() { - return self::SUBJECT_PREFIX.' '.$this->renderSubject(); + return trim($this->getSubjectPrefix().' '.$this->renderSubject()); } protected function shouldMarkMailAsHTML() { Index: src/applications/differential/mail/newdiff/DifferentialNewDiffMail.php =================================================================== --- src/applications/differential/mail/newdiff/DifferentialNewDiffMail.php +++ src/applications/differential/mail/newdiff/DifferentialNewDiffMail.php @@ -40,11 +40,10 @@ return parent::buildSubject(); } - $prefix = self::SUBJECT_PREFIX; - + $prefix = $this->getSubjectPrefix(); $subject = $this->renderSubject(); - return "{$prefix} {$subject}"; + return trim("{$prefix} {$subject}"); } protected function renderBody() { Index: src/applications/maniphest/editor/transaction/ManiphestTransactionEditor.php =================================================================== --- src/applications/maniphest/editor/transaction/ManiphestTransactionEditor.php +++ src/applications/maniphest/editor/transaction/ManiphestTransactionEditor.php @@ -17,7 +17,6 @@ */ class ManiphestTransactionEditor { - const SUBJECT_PREFIX = '[Maniphest]'; public function applyTransactions($task, array $transactions) { @@ -130,6 +129,10 @@ $this->sendEmail($task, $transactions, $email_to, $email_cc); } + protected function getSubjectPrefix() { + return PhabricatorEnv::getEnvConfig('metamta.maniphest.subject-prefix'); + } + private function sendEmail($task, $transactions, $email_to, $email_cc) { $email_to = array_filter(array_unique($email_to)); $email_cc = array_filter(array_unique($email_cc)); @@ -193,9 +196,11 @@ $thread_id = 'getPHID().'>'; $task_id = $task->getID(); $title = $task->getTitle(); + $prefix = $this->getSubjectPrefix(); + $subject = trim("{$prefix} [{$action}] T{$task_id}: {$title}"); $template = id(new PhabricatorMetaMTAMail()) - ->setSubject(self::SUBJECT_PREFIX." [{$action}] T{$task_id}: {$title}") + ->setSubject($subject) ->setFrom($transaction->getAuthorPHID()) ->addHeader('Thread-Topic', 'Maniphest Task '.$task->getID()) ->setThreadID($thread_id, $is_create)