[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PasteCreateMailReceiver extends PhabricatorMailReceiver { 4 5 public function isEnabled() { 6 $app_class = 'PhabricatorPasteApplication'; 7 return PhabricatorApplication::isClassInstalled($app_class); 8 } 9 10 public function canAcceptMail(PhabricatorMetaMTAReceivedMail $mail) { 11 $config_key = 'metamta.paste.public-create-email'; 12 $create_address = PhabricatorEnv::getEnvConfig($config_key); 13 if (!$create_address) { 14 return false; 15 } 16 17 foreach ($mail->getToAddresses() as $to_address) { 18 if ($this->matchAddresses($create_address, $to_address)) { 19 return true; 20 } 21 } 22 23 return false; 24 } 25 26 protected function processReceivedMail( 27 PhabricatorMetaMTAReceivedMail $mail, 28 PhabricatorUser $sender) { 29 30 $title = $mail->getSubject(); 31 if (!$title) { 32 $title = pht('Email Paste'); 33 } 34 35 $file = PhabricatorPasteEditor::initializeFileForPaste( 36 $sender, 37 $title, 38 $mail->getCleanTextBody()); 39 40 $xactions = array(); 41 42 $xactions[] = id(new PhabricatorPasteTransaction()) 43 ->setTransactionType(PhabricatorPasteTransaction::TYPE_CONTENT) 44 ->setNewValue($file->getPHID()); 45 46 $xactions[] = id(new PhabricatorPasteTransaction()) 47 ->setTransactionType(PhabricatorPasteTransaction::TYPE_TITLE) 48 ->setNewValue($title); 49 50 $xactions[] = id(new PhabricatorPasteTransaction()) 51 ->setTransactionType(PhabricatorPasteTransaction::TYPE_LANGUAGE) 52 ->setNewValue(''); // auto-detect 53 54 $paste = PhabricatorPaste::initializeNewPaste($sender); 55 56 $content_source = PhabricatorContentSource::newForSource( 57 PhabricatorContentSource::SOURCE_EMAIL, 58 array( 59 'id' => $mail->getID(), 60 )); 61 62 $editor = id(new PhabricatorPasteEditor()) 63 ->setActor($sender) 64 ->setContentSource($content_source) 65 ->setContinueOnNoEffect(true); 66 $xactions = $editor->applyTransactions($paste, $xactions); 67 68 $mail->setRelatedPHID($paste->getPHID()); 69 70 $subject_prefix = 71 PhabricatorEnv::getEnvConfig('metamta.paste.subject-prefix'); 72 $subject = pht('You successfully created a paste.'); 73 $paste_uri = PhabricatorEnv::getProductionURI($paste->getURI()); 74 $body = new PhabricatorMetaMTAMailBody(); 75 $body->addRawSection($subject); 76 $body->addTextSection(pht('PASTE LINK'), $paste_uri); 77 78 id(new PhabricatorMetaMTAMail()) 79 ->addTos(array($sender->getPHID())) 80 ->setSubject($subject) 81 ->setSubjectPrefix($subject_prefix) 82 ->setFrom($sender->getPHID()) 83 ->setRelatedPHID($paste->getPHID()) 84 ->setBody($body->render()) 85 ->saveAndSend(); 86 } 87 88 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |