Exemplo n.º 1
0
 function deleteSpamMessages($email, $dateSince)
 {
     global $CYRUS;
     $cyr_conn = new cyradm();
     $error_msg = "";
     $error = $cyr_conn->imap_login();
     $dataEmail = explode("@", $email);
     if ($error === FALSE) {
         $error_msg = "IMAP login error: {$error} <br>";
     } else {
         $seperator = '/';
         $bValido = $cyr_conn->command(". select \"user" . $seperator . $dataEmail[0] . $seperator . "Spam@" . $dataEmail[1] . "\"");
         if (!$bValido) {
             $error_msg = "Error selected Spam folder:" . $cyr_conn->getMessage() . "<br>";
         } else {
             $bValido = $cyr_conn->command(". SEARCH NOT SINCE {$dateSince}");
             // busca los email que no empiecen desde la fecha dada
             if (!$bValido) {
                 $error_msg = "error cannot be added flags Deleted to the messages of Spam folder for {$email}:" . $cyr_conn->getMessage() . "<br>";
             } else {
                 $sal = explode("SEARCH", $bValido[0]);
                 $uids = trim($sal[1]);
                 //ids de mensajes
                 if ($uids != "") {
                     //$bValido=$cyr_conn->command(". store 1:* +flags \Deleted");
                     $uids = trim($uids);
                     $uids = str_replace(" ", ",", $uids);
                     if (strlen($uids) > 100) {
                         $arrID = explode(",", "{$uids}");
                         $size = count($arrID);
                         $limitID = $arrID[0] . ":" . $arrID[$size - 1];
                         $bValido = $cyr_conn->command(". store {$limitID} +flags \\Deleted");
                     } else {
                         $bValido = $cyr_conn->command(". store {$uids} +flags \\Deleted");
                     }
                     // messages $uids = 1 2 4 5 7 8
                     if (!$bValido) {
                         $error_msg = "error cannot be deleted the messages of Spam folder for {$email}:" . $cyr_conn->getMessage() . "<br>";
                     } else {
                         $bValido = $cyr_conn->command(". expunge");
                         if (!$bValido) {
                             $error_msg = "error cannot be deleted the messages of Spam folder for {$email}:" . $cyr_conn->getMessage() . "<br>";
                         }
                         /*else{
                               $bValido=$cyr_conn->command(". noop");
                               if(!$bValido)
                                   $error_msg = "error cannot be deleted the messages of Spam folder for $email:".$cyr_conn->getMessage()."<br>";
                           }*/
                     }
                 }
             }
         }
         $cyr_conn->imap_logout();
     }
     return $error_msg;
 }