[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorMetaMTASendGridReceiveController 4 extends PhabricatorMetaMTAController { 5 6 public function shouldRequireLogin() { 7 return false; 8 } 9 10 public function processRequest() { 11 12 // No CSRF for SendGrid. 13 $unguarded = AphrontWriteGuard::beginScopedUnguardedWrites(); 14 15 $request = $this->getRequest(); 16 $user = $request->getUser(); 17 18 $raw_headers = $request->getStr('headers'); 19 $raw_headers = explode("\n", rtrim($raw_headers)); 20 $raw_dict = array(); 21 foreach (array_filter($raw_headers) as $header) { 22 list($name, $value) = explode(':', $header, 2); 23 $raw_dict[$name] = ltrim($value); 24 } 25 26 $headers = array( 27 'to' => $request->getStr('to'), 28 'from' => $request->getStr('from'), 29 'subject' => $request->getStr('subject'), 30 ) + $raw_dict; 31 32 $received = new PhabricatorMetaMTAReceivedMail(); 33 $received->setHeaders($headers); 34 $received->setBodies(array( 35 'text' => $request->getStr('text'), 36 'html' => $request->getStr('from'), 37 )); 38 39 $file_phids = array(); 40 foreach ($_FILES as $file_raw) { 41 try { 42 $file = PhabricatorFile::newFromPHPUpload( 43 $file_raw, 44 array( 45 'authorPHID' => $user->getPHID(), 46 )); 47 $file_phids[] = $file->getPHID(); 48 } catch (Exception $ex) { 49 phlog($ex); 50 } 51 } 52 $received->setAttachments($file_phids); 53 $received->save(); 54 55 $received->processReceivedMail(); 56 57 $response = new AphrontWebpageResponse(); 58 $response->setContent(pht("Got it! Thanks, SendGrid!\n")); 59 return $response; 60 } 61 62 }
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 |