diff --git a/include/class.thread.php b/include/class.thread.php index 06ad342f583a99f3b1b0574393c267cda861c39d..0a1162487feece9b9d247574657b2287a75afa24 100644 --- a/include/class.thread.php +++ b/include/class.thread.php @@ -604,6 +604,8 @@ implements TemplateVariable { var $_headers; var $_thread; var $_actions; + var $is_autoreply; + var $is_bounce; static protected $perms = array( self::PERM_EDIT => array( diff --git a/include/class.ticket.php b/include/class.ticket.php index 9cc637f5594d2fee22acc6ab3e4b73f0347cb033..8e0871df0160a787dbe1c8d26550d25d9c199f5e 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -1542,6 +1542,9 @@ implements RestrictedAccess, Threadable { $this->setStaffId(0); // Clear assignment } + if (!$autorespond) + return; + // Figure out the user if ($this->getOwnerId() == $message->getUserId()) $user = new TicketOwner( @@ -1553,11 +1556,11 @@ implements RestrictedAccess, Threadable { /********** double check auto-response ************/ if (!$user) - $autorespond=false; - elseif ($autorespond && (Email::getIdByEmail($user->getEmail()))) - $autorespond=false; - elseif ($autorespond && ($dept=$this->getDept())) - $autorespond=$dept->autoRespONNewMessage(); + $autorespond = false; + elseif ((Email::getIdByEmail($user->getEmail()))) + $autorespond = false; + elseif (($dept=$this->getDept())) + $autorespond = $dept->autoRespONNewMessage(); if (!$autorespond || !$cfg->autoRespONNewMessage() @@ -2293,28 +2296,18 @@ implements RestrictedAccess, Threadable { } // Do not auto-respond to bounces and other auto-replies - if ($alerts) - $alerts = isset($vars['mailflags']) + $autorespond = isset($vars['mailflags']) ? !$vars['mailflags']['bounce'] && !$vars['mailflags']['auto-reply'] : true; - if ($alerts && $message->isBounceOrAutoReply()) - $alerts = false; - - if ($alerts && $this->getThread()->getLastEmailMessage(array( - 'user_id' => $message->user_id, - 'id__lt' => $message->id, - 'created__gt' => SqlFunction::NOW()->minus(SqlInterval::MINUTE(5)), - ))) { - // One message already from this user in the last five minutes - $alerts = false; - } + if ($autorespond && $message->isBounceOrAutoReply()) + $autorespond = false; - $this->onMessage($message, $alerts); //must be called b4 sending alerts to staff. + $this->onMessage($message, $autorespond); //must be called b4 sending alerts to staff. - if ($alerts && $cfg && $cfg->notifyCollabsONNewMessage()) + if ($autorespond && $cfg && $cfg->notifyCollabsONNewMessage()) $this->notifyCollaborators($message, array('signature' => '')); - if (!$alerts) + if (!($alerts && $autorespond)) return $message; //Our work is done... $dept = $this->getDept();