/** * 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); } }
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(); }
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."); } }
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);
/** * if $this->resource is still active, close it */ public function __destruct() { if (is_resource($this->resource)) { mailparse_msg_free($this->resource); } }