Skip to content
Snippets Groups Projects
Commit c7ce77f3 authored by Peter Rotich's avatar Peter Rotich
Browse files

Report success on ticket denial (hard reject)

parent d5bce59d
No related branches found
No related tags found
No related merge requests found
......@@ -90,31 +90,30 @@ $var['header']=$parser->getHeader();
$var['priorityId']=$cfg->useEmailPriority()?$parser->getPriority():0;
$ticket=null;
if(preg_match ("[[#][0-9]{1,10}]",$var['subject'],$regs)) {
if(preg_match ("[[#][0-9]{1,10}]", $var['subject'], $regs)) {
$extid=trim(preg_replace("/[^0-9]/", "", $regs[0]));
$ticket= new Ticket(Ticket::getIdByExtId($extid));
//Allow mismatched emails?? For now hell NO.
if(!is_object($ticket) || strcasecmp($ticket->getEmail(),$var['email']))
$ticket=null;
if(!($ticket=Ticket::lookupByExtId($extid, $var['email'])) || strcasecmp($ticket->getEmail(), $var['email']))
$ticket = null;
}
$errors=array();
$msgid=0;
if(!$ticket) { //New tickets...
$ticket=Ticket::create($var,$errors,'email');
if(!is_object($ticket) || $errors) {
api_exit(EX_DATAERR,'Ticket create Failed '.implode("\n",$errors)."\n\n");
}
if($ticket) {
//post message....postMessage does the cleanup.
if(!($msgid=$ticket->postMessage($var['message'], 'Email',$var['mid'],$var['header'])))
api_exit(EX_DATAERR, 'Unable to post message');
} elseif(($ticket=Ticket::create($var, $errors, 'email'))) { // create new ticket.
$msgid=$ticket->getLastMsgId();
} else { // failure....
if(isset($errors['errno']) && $errors['errno'] == 403)
api_exit(EX_SUCCESS); //report success on hard rejection
} else {
//post message....postMessage does the cleanup.
if(!($msgid=$ticket->postMessage($var['message'], 'Email',$var['mid'],$var['header']))) {
api_exit(EX_DATAERR, 'Unable to post message');
}
api_exit(EX_DATAERR,'Ticket create Failed '.implode("\n",$errors)."\n\n");
}
//Ticket created...save attachments if enabled.
if($cfg->allowEmailAttachments() && ($attachments=$parser->getAttachments())) {
if($ticket && $cfg->allowEmailAttachments() && ($attachments=$parser->getAttachments())) {
foreach($attachments as $attachment) {
if($attachment['filename'] && $ost->isFileTypeAllowed($attachment['filename']))
$ticket->saveAttachment(array('name' => $attachment['filename'], 'data' => $attachment['body']), $msgid, 'M');
......
......@@ -417,6 +417,10 @@ class MailFetcher {
} elseif (($ticket=Ticket::create($var, $errors, 'Email'))) {
$msgid = $ticket->getLastMsgId();
} else {
//Report success if the email was absolutely rejected.
if(isset($errors['errno']) && $errors['errno'] == 403)
return true;
//TODO: Log error..
return null;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment