/**
  * @param $emails_ids   array
  * @param $action                (default 0)
  * @param $entity                (default 0)
  **/
 function deleteOrImportSeveralEmails($emails_ids = array(), $action = 0, $entity = 0)
 {
     global $DB;
     $mailbox_id = 0;
     $query = "SELECT *\n                     FROM `glpi_notimportedemails`\n                     WHERE `id` IN (" . implode(',', $emails_ids) . ")\n                     ORDER BY `mailcollectors_id`";
     $todelete = array();
     foreach ($DB->request($query) as $data) {
         $todelete[$data['mailcollectors_id']][$data['messageid']] = $data;
     }
     $ticket = new Ticket();
     foreach ($todelete as $mailcollector_id => $rejected) {
         if ($this->getFromDB($mailcollector_id)) {
             $this->mid = -1;
             $this->fetch_emails = 0;
             //Connect to the Mail Box
             $this->connect();
             // Get Total Number of Unread Email in mail box
             $tot = $this->getTotalMails();
             //Total Mails in Inbox Return integer value
             for ($i = 1; $i <= $tot; $i++) {
                 $head = $this->getHeaders($i);
                 if (isset($rejected[$head['message_id']])) {
                     if ($action == 1) {
                         $tkt = array();
                         $tkt = $this->buildTicket($i, array('mailgates_id' => $mailcollector_id, 'play_rules' => false));
                         $tkt['_users_id_requester'] = $rejected[$head['message_id']]['users_id'];
                         $tkt['entities_id'] = $entity;
                         $ticket->add($tkt);
                         $folder = self::ACCEPTED_FOLDER;
                     } else {
                         $folder = self::REFUSED_FOLDER;
                     }
                     //Delete email
                     if ($this->deleteMails($i, $folder)) {
                         $rejectedmail = new NotImportedEmail();
                         $rejectedmail->delete(array('id' => $rejected[$head['message_id']]['id']));
                     }
                     // Unset managed
                     unset($rejected[$head['message_id']]);
                 }
             }
             // Email not present in mailbox
             if (count($rejected)) {
                 $clean = array('<' => '', '>' => '');
                 foreach ($rejected as $id => $data) {
                     if ($action == 1) {
                         Session::addMessageAfterRedirect(sprintf(__('Email %s not found. Impossible import.'), strtr($id, $clean)), false, ERROR);
                     } else {
                         // Delete data in notimportedemail table
                         $rejectedmail = new NotImportedEmail();
                         $rejectedmail->delete(array('id' => $data['id']));
                     }
                 }
             }
             imap_expunge($this->marubox);
             $this->close_mailbox();
         }
     }
 }