diff --git a/include/class.mailfetch.php b/include/class.mailfetch.php index 9f0ae3b1e951069005e2f34ae3b8a00ffb319681..7fee6868a50a70cb1681f05ae8e2c7604510234f 100644 --- a/include/class.mailfetch.php +++ b/include/class.mailfetch.php @@ -426,11 +426,10 @@ class MailFetcher { if (($thread = ThreadEntry::lookupByEmailHeaders($vars)) && ($message = $thread->postEmail($vars))) { - if ($message === true) + if (!$message instanceof ThreadEntry) // Email has been processed previously - return true; - elseif ($message) - $ticket = $message->getTicket(); + return $message; + $ticket = $message->getTicket(); } elseif (($ticket=Ticket::create($vars, $errors, 'Email'))) { $message = $ticket->getLastMessage(); } else { diff --git a/include/class.thread.php b/include/class.thread.php index d0260be905d6b1715fe10eceb5b7fcece5be7fc7..c31a1915165bfcc2ffc983da3c91083587a7f324 100644 --- a/include/class.thread.php +++ b/include/class.thread.php @@ -519,6 +519,7 @@ Class ThreadEntry { $vars = array( 'mid' => $mailinfo['mid'], + 'header' => $mailinfo['header'], 'ticketId' => $ticket->getId(), 'poster' => $mailinfo['name'], 'origin' => 'Email', @@ -543,6 +544,10 @@ Class ThreadEntry { $vars['note'] = $body; return $ticket->postNote($vars, $errors, $poster); } + elseif (Email::lookupByEmail($mailinfo['email'])) { + // Don't process the email -- it came FROM this system + return true; + } // TODO: Consider security constraints else { $vars['message'] = sprintf("Received From: %s\n\n%s",