Differential D19399 Diff 46416 src/applications/metamta/replyhandler/PhabricatorMailReplyHandler.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/metamta/replyhandler/PhabricatorMailReplyHandler.php
| Show First 20 Lines • Show All 130 Lines • ▼ Show 20 Lines | protected function getDefaultPublicReplyHandlerEmailAddress($prefix) { | ||||
| $receiver = $this->getMailReceiver(); | $receiver = $this->getMailReceiver(); | ||||
| $receiver_id = $receiver->getID(); | $receiver_id = $receiver->getID(); | ||||
| $domain = $this->getReplyHandlerDomain(); | $domain = $this->getReplyHandlerDomain(); | ||||
| // We compute a hash using the object's own PHID to prevent an attacker | // We compute a hash using the object's own PHID to prevent an attacker | ||||
| // from blindly interacting with objects that they haven't ever received | // from blindly interacting with objects that they haven't ever received | ||||
| // mail about by just sending to D1@, D2@, etc... | // mail about by just sending to D1@, D2@, etc... | ||||
| $mail_key = PhabricatorMetaMTAMailProperties::loadMailKey($receiver); | |||||
| $hash = PhabricatorObjectMailReceiver::computeMailHash( | $hash = PhabricatorObjectMailReceiver::computeMailHash( | ||||
| $receiver->getMailKey(), | $mail_key, | ||||
| $receiver->getPHID()); | $receiver->getPHID()); | ||||
| $address = "{$prefix}{$receiver_id}+public+{$hash}@{$domain}"; | $address = "{$prefix}{$receiver_id}+public+{$hash}@{$domain}"; | ||||
| return $this->getSingleReplyHandlerPrefix($address); | return $this->getSingleReplyHandlerPrefix($address); | ||||
| } | } | ||||
| protected function getSingleReplyHandlerPrefix($address) { | protected function getSingleReplyHandlerPrefix($address) { | ||||
| $single_handle_prefix = PhabricatorEnv::getEnvConfig( | $single_handle_prefix = PhabricatorEnv::getEnvConfig( | ||||
| 'metamta.single-reply-handler-prefix'); | 'metamta.single-reply-handler-prefix'); | ||||
| return ($single_handle_prefix) | return ($single_handle_prefix) | ||||
| ? $single_handle_prefix.'+'.$address | ? $single_handle_prefix.'+'.$address | ||||
| : $address; | : $address; | ||||
| } | } | ||||
| protected function getDefaultPrivateReplyHandlerEmailAddress( | protected function getDefaultPrivateReplyHandlerEmailAddress( | ||||
| PhabricatorUser $user, | PhabricatorUser $user, | ||||
| $prefix) { | $prefix) { | ||||
| $receiver = $this->getMailReceiver(); | $receiver = $this->getMailReceiver(); | ||||
| $receiver_id = $receiver->getID(); | $receiver_id = $receiver->getID(); | ||||
| $user_id = $user->getID(); | $user_id = $user->getID(); | ||||
| $mail_key = PhabricatorMetaMTAMailProperties::loadMailKey($receiver); | |||||
| $hash = PhabricatorObjectMailReceiver::computeMailHash( | $hash = PhabricatorObjectMailReceiver::computeMailHash( | ||||
| $receiver->getMailKey(), | $mail_key, | ||||
| $user->getPHID()); | $user->getPHID()); | ||||
| $domain = $this->getReplyHandlerDomain(); | $domain = $this->getReplyHandlerDomain(); | ||||
| $address = "{$prefix}{$receiver_id}+{$user_id}+{$hash}@{$domain}"; | $address = "{$prefix}{$receiver_id}+{$user_id}+{$hash}@{$domain}"; | ||||
| return $this->getSingleReplyHandlerPrefix($address); | return $this->getSingleReplyHandlerPrefix($address); | ||||
| } | } | ||||
| final protected function enhanceBodyWithAttachments( | final protected function enhanceBodyWithAttachments( | ||||
| ▲ Show 20 Lines • Show All 265 Lines • Show Last 20 Lines | |||||