Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/paste/mail/PasteCreateMailReceiver.php
12241 views
1
<?php
2
3
final class PasteCreateMailReceiver
4
extends PhabricatorApplicationMailReceiver {
5
6
protected function newApplication() {
7
return new PhabricatorPasteApplication();
8
}
9
10
protected function processReceivedMail(
11
PhabricatorMetaMTAReceivedMail $mail,
12
PhutilEmailAddress $target) {
13
$author = $this->getAuthor();
14
15
$title = $mail->getSubject();
16
if (!$title) {
17
$title = pht('Email Paste');
18
}
19
20
$xactions = array();
21
22
$xactions[] = id(new PhabricatorPasteTransaction())
23
->setTransactionType(PhabricatorPasteContentTransaction::TRANSACTIONTYPE)
24
->setNewValue($mail->getCleanTextBody());
25
26
$xactions[] = id(new PhabricatorPasteTransaction())
27
->setTransactionType(PhabricatorPasteTitleTransaction::TRANSACTIONTYPE)
28
->setNewValue($title);
29
30
$paste = PhabricatorPaste::initializeNewPaste($author);
31
32
$content_source = $mail->newContentSource();
33
34
$editor = id(new PhabricatorPasteEditor())
35
->setActor($author)
36
->setContentSource($content_source)
37
->setContinueOnNoEffect(true);
38
$xactions = $editor->applyTransactions($paste, $xactions);
39
40
$mail->setRelatedPHID($paste->getPHID());
41
42
$sender = $this->getSender();
43
if (!$sender) {
44
return;
45
}
46
47
$subject_prefix = pht('[Paste]');
48
$subject = pht('You successfully created a paste.');
49
$paste_uri = PhabricatorEnv::getProductionURI($paste->getURI());
50
$body = new PhabricatorMetaMTAMailBody();
51
$body->addRawSection($subject);
52
$body->addTextSection(pht('PASTE LINK'), $paste_uri);
53
54
id(new PhabricatorMetaMTAMail())
55
->addTos(array($sender->getPHID()))
56
->setSubject($subject)
57
->setSubjectPrefix($subject_prefix)
58
->setFrom($sender->getPHID())
59
->setRelatedPHID($paste->getPHID())
60
->setBody($body->render())
61
->saveAndSend();
62
}
63
64
}
65
66