Example #1
0
    $ticket = Ticket::create($var, $errors, 'email');
    if (!is_object($ticket) || $errors) {
        api_exit(EX_DATAERR, 'Create Failed ' . implode("\n", $errors) . "\n\n");
    }
    $msgid = $ticket->getLastMsgId();
} else {
    $message = $var['message'];
    //Strip quoted reply...TODO: figure out how mail clients do it without special tag..
    if ($cfg->stripQuotedReply() && ($tag = $cfg->getReplySeparator()) && strpos($var['message'], $tag)) {
        list($message) = split($tag, $var['message']);
    }
    //post message....postMessage does the cleanup.
    if (!($msgid = $ticket->postMessage($message, $var['header'], 'Email'))) {
        api_exit(EX_DATAERR, "post message failed \n\n {$message}\n");
    }
}
//Ticket created...save attachments if enabled.
$struct = $parser->getStruct();
if ($struct && $struct->parts && $cfg->allowEmailAttachments()) {
    for ($i = 0; $i < count($struct->parts); $i++) {
        $part = $struct->parts[$i];
        if ($part->disposition && (!strcasecmp($part->disposition, 'attachment') || !strcasecmp($part->disposition, 'inline') || !strcasecmp($part->ctype_primary, 'image'))) {
            $filename = $part->d_parameters['filename'];
            if ($filename && $cfg->canUploadFileType($filename)) {
                $ticket->saveAttachment($filename, $part->body, $msgid, 'M');
            }
        }
    }
}
//print_r($var);
api_exit(EX_SUCCESS);