Changeset View
Changeset View
Standalone View
Standalone View
src/applications/paste/mail/PasteCreateMailReceiver.php
<?php | <?php | ||||
final class PasteCreateMailReceiver | final class PasteCreateMailReceiver | ||||
extends PhabricatorApplicationMailReceiver { | extends PhabricatorApplicationMailReceiver { | ||||
protected function newApplication() { | protected function newApplication() { | ||||
return new PhabricatorPasteApplication(); | return new PhabricatorPasteApplication(); | ||||
} | } | ||||
protected function processReceivedMail( | protected function processReceivedMail( | ||||
PhabricatorMetaMTAReceivedMail $mail, | PhabricatorMetaMTAReceivedMail $mail, | ||||
PhabricatorUser $sender) { | PhutilEmailAddress $target) { | ||||
$author = $this->getAuthor(); | |||||
$title = $mail->getSubject(); | $title = $mail->getSubject(); | ||||
if (!$title) { | if (!$title) { | ||||
$title = pht('Email Paste'); | $title = pht('Email Paste'); | ||||
} | } | ||||
$xactions = array(); | $xactions = array(); | ||||
$xactions[] = id(new PhabricatorPasteTransaction()) | $xactions[] = id(new PhabricatorPasteTransaction()) | ||||
->setTransactionType(PhabricatorPasteContentTransaction::TRANSACTIONTYPE) | ->setTransactionType(PhabricatorPasteContentTransaction::TRANSACTIONTYPE) | ||||
->setNewValue($mail->getCleanTextBody()); | ->setNewValue($mail->getCleanTextBody()); | ||||
$xactions[] = id(new PhabricatorPasteTransaction()) | $xactions[] = id(new PhabricatorPasteTransaction()) | ||||
->setTransactionType(PhabricatorPasteTitleTransaction::TRANSACTIONTYPE) | ->setTransactionType(PhabricatorPasteTitleTransaction::TRANSACTIONTYPE) | ||||
->setNewValue($title); | ->setNewValue($title); | ||||
$paste = PhabricatorPaste::initializeNewPaste($sender); | $paste = PhabricatorPaste::initializeNewPaste($author); | ||||
$content_source = $mail->newContentSource(); | $content_source = $mail->newContentSource(); | ||||
$editor = id(new PhabricatorPasteEditor()) | $editor = id(new PhabricatorPasteEditor()) | ||||
->setActor($sender) | ->setActor($author) | ||||
->setContentSource($content_source) | ->setContentSource($content_source) | ||||
->setContinueOnNoEffect(true); | ->setContinueOnNoEffect(true); | ||||
$xactions = $editor->applyTransactions($paste, $xactions); | $xactions = $editor->applyTransactions($paste, $xactions); | ||||
$mail->setRelatedPHID($paste->getPHID()); | $mail->setRelatedPHID($paste->getPHID()); | ||||
$sender = $this->getSender(); | |||||
if (!$sender) { | |||||
return; | |||||
} | |||||
$subject_prefix = | $subject_prefix = | ||||
PhabricatorEnv::getEnvConfig('metamta.paste.subject-prefix'); | PhabricatorEnv::getEnvConfig('metamta.paste.subject-prefix'); | ||||
$subject = pht('You successfully created a paste.'); | $subject = pht('You successfully created a paste.'); | ||||
$paste_uri = PhabricatorEnv::getProductionURI($paste->getURI()); | $paste_uri = PhabricatorEnv::getProductionURI($paste->getURI()); | ||||
$body = new PhabricatorMetaMTAMailBody(); | $body = new PhabricatorMetaMTAMailBody(); | ||||
$body->addRawSection($subject); | $body->addRawSection($subject); | ||||
$body->addTextSection(pht('PASTE LINK'), $paste_uri); | $body->addTextSection(pht('PASTE LINK'), $paste_uri); | ||||
id(new PhabricatorMetaMTAMail()) | id(new PhabricatorMetaMTAMail()) | ||||
->addTos(array($sender->getPHID())) | ->addTos(array($sender->getPHID())) | ||||
->setSubject($subject) | ->setSubject($subject) | ||||
->setSubjectPrefix($subject_prefix) | ->setSubjectPrefix($subject_prefix) | ||||
->setFrom($sender->getPHID()) | ->setFrom($sender->getPHID()) | ||||
->setRelatedPHID($paste->getPHID()) | ->setRelatedPHID($paste->getPHID()) | ||||
->setBody($body->render()) | ->setBody($body->render()) | ||||
->saveAndSend(); | ->saveAndSend(); | ||||
} | } | ||||
} | } |