示例#1
0
 /**
  * Free the held resouces
  * @return void
  */
 public function __destruct()
 {
     // clear the email file resource
     if (is_resource($this->stream)) {
         fclose($this->stream);
     }
     // clear the MailParse resource
     if (is_resource($this->resource)) {
         mailparse_msg_free($this->resource);
     }
 }
 /**
  * Free the held resouces
  * @return void
  */
 public function __destruct()
 {
     // clear the email file resource
     if (is_resource($this->stream)) {
         fclose($this->stream);
     }
     // clear the MailParse resource
     if (is_resource($this->resource)) {
         mailparse_msg_free($this->resource);
     }
     // remove attachment resources
     foreach ($this->attachment_streams as $stream) {
         fclose($stream);
     }
 }
示例#3
0
 function _parseFile($full_filename)
 {
     $logger = DevblocksPlatform::getConsoleLog();
     $fileparts = pathinfo($full_filename);
     $logger->info("[Parser] Reading " . $fileparts['basename'] . "...");
     $time = microtime(true);
     $mime = mailparse_msg_parse_file($full_filename);
     $message = CerberusParser::parseMime($mime, $full_filename);
     $time = microtime(true) - $time;
     $logger->info("[Parser] Decoded! (" . sprintf("%d", $time * 1000) . " ms)");
     //	    echo "<b>Plaintext:</b> ", $message->body,"<BR>";
     //	    echo "<BR>";
     //	    echo "<b>HTML:</b> ", htmlspecialchars($message->htmlbody), "<BR>";
     //	    echo "<BR>";
     //	    echo "<b>Files:</b> "; print_r($message->files); echo "<BR>";
     //	    echo "<HR>";
     $time = microtime(true);
     $ticket_id = CerberusParser::parseMessage($message);
     $time = microtime(true) - $time;
     $logger->info("[Parser] Parsed! (" . sprintf("%d", $time * 1000) . " ms) " . (!empty($ticket_id) ? "(Ticket ID: " . $ticket_id . ")" : "(Local Delivery Rejected.)"));
     @unlink($full_filename);
     mailparse_msg_free($mime);
     //		flush();
 }
示例#4
0
文件: App.php 项目: joegeck/cerb4
 private function _postSourceParseAction($path)
 {
     $xml_in = simplexml_load_string($this->getPayload());
     @($source = (string) $xml_in->source);
     if (empty($source)) {
         $this->_error("No message source was provided.");
     }
     //echo("<pre>");print_r($source);echo("</pre>");exit();
     $file = CerberusParser::saveMimeToFile($source);
     $mime = mailparse_msg_parse_file($file);
     $message = CerberusParser::parseMime($mime, $file);
     mailparse_msg_free($mime);
     @unlink($file);
     $ticket_id = CerberusParser::parseMessage($message);
     if (null != ($ticket = DAO_Ticket::getTicket($ticket_id))) {
         // [TODO] Denote if ticket is new or reply?
         $xml_out = new SimpleXMLElement("<ticket></ticket>");
         $xml_out->addChild("id", $ticket_id);
         $xml_out->addChild("mask", $ticket->mask);
         $this->_render($xml_out->asXML());
     } else {
         $this->_error("Message could not be parsed.");
     }
 }
示例#5
0
    mail('*****@*****.**', 'TwitApps incoming mail: Parse failed', $data, 'From: TwitApps <*****@*****.**>', '*****@*****.**');
} else {
    $message = mailparse_msg_get_part($msg, 1);
    $info = mailparse_msg_get_part_data($message);
    if (!$message or !$info) {
        mail('*****@*****.**', 'TwitApps incoming mail: Failed to get message or info', $data, 'From: TwitApps <*****@*****.**>', '*****@*****.**');
    } else {
        ob_start();
        mailparse_msg_extract_part($message, $data);
        $body = ob_get_clean();
        $body = urldecode($body);
        $body = iconv($info['charset'], 'UTF-8', $body);
        $body = html_entity_decode($body, ENT_NOQUOTES, 'UTF-8');
        //mail('*****@*****.**', $info['headers']['subject'], $body."\n\n========================================\n\n".$data, 'From: TwitApps <*****@*****.**>', '*****@*****.**');
        switch (@$info['headers']['x-twitterrecipientscreenname']) {
            case 'ta_follows':
                require dirname(__FILE__) . '/../follows/cli/incoming_mail.php';
                break;
            case 'ta_replies':
                require dirname(__FILE__) . '/../replies/cli/incoming_mail.php';
                break;
                // Unhandled, forward the email on so it doesn't get lost
            // Unhandled, forward the email on so it doesn't get lost
            default:
                mail('*****@*****.**', $info['headers']['subject'], $body . "\n\n========================================\n\n" . $data, 'From: TwitApps <*****@*****.**>', '*****@*****.**');
                break;
        }
    }
}
mailparse_msg_free($msg);
示例#6
0
 /**
  * if $this->resource is still active, close it
  */
 public function __destruct()
 {
     if (is_resource($this->resource)) {
         mailparse_msg_free($this->resource);
     }
 }