Page MenuHomePhabricator

Maniphest task: Add cc address to the "From email" field that replies to the task
Closed, ResolvedPublic

Description

Currently, maniphest tasks submitted anonymously via email will include a "From email" field with a link to reply directly to the task submitter's email address.

We want to modify that to include &cc=task-reply-email-address@phabricator.wikimedia.org in the mailto: link so that replies will get cc'd to the task. Phabricator's incoming email routing should already handle this but currently the task isn't getting CC'd so replies are not logged anywhere but the outbox of the sender.

The code for the field in question is in ManiphestTaskDetailController and it's already been customized by us in rPHAB85c4c54a2122: Hide email addresses on tasks submitted via email

Adding CC to the field is trivial and all that I need to figure out is how to generate a valid reply-to address that includes the hash of the addreess.

PhabricatorObjectMailReceiver implements the validation logic for the reply address like this:

$mail_key = PhabricatorMetaMTAMailProperties::loadMailKey($object);
$expect_hash = self::computeMailHash($mail_key, $check_phid);

and computeMailHash is implemented simply (and publically) like so:

public static function computeMailHash($mail_key, $phid) {
    $hash = PhabricatorHash::digestWithNamedKey(
      $mail_key.$phid,
      'mail.object-address-key');
    return substr($hash, 0, 16);
  }

That should be all I need to implement the custom mailto: link, I don't think I'll be able to work on this until next week, hopefully it can be deployed by the first or second week of December.