Changeset 91504 in spip-zone


Ignore:
Timestamp:
Aug 27, 2015, 7:52:54 AM (6 years ago)
Author:
erational@…
Message:

on se débarrasse de la librairie externe imap qui ne fonctionnait sur certains serveurs.
on se base maintenant uniquement sur les fonctions natives de PHP.

Location:
_plugins_/facteurmonitoring
Files:
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/facteurmonitoring/formulaires/configurer_facteurmonitoring.html

    r90977 r91504  
    2525       
    2626    [(#SAISIE{input, email_pwd,
     27        type=password,
    2728                                label=<:facteurmonitoring:cfg_email_pwd:>})]   
    2829       
  • _plugins_/facteurmonitoring/genie/facteurmonitoring.php

    r90981 r91504  
    3333  ecrire_meta('facteurmonitoring_etat', 'NOTOK');
    3434 
     35  spip_log("---","facteurmonitoring"); 
     36 
    3537  if (isset($GLOBALS['meta']['facteurmonitoring_hash'])) {
    3638    $email_hash = trim($GLOBALS['meta']['facteurmonitoring_hash']);
    3739   
    3840    if ($email_hash) {
    39          // on se connecte en IMAP pour rechercher cet email
    40         include_spip("lib/PhpImap/MailBox");
    41    
     41        // on se connecte en IMAP pour rechercher cet email
    4242        $connection = '{'.$hote_imap.':'.$hote_port.'}'.$hote_inbox;
    43         $mailbox = new PhpImap\Mailbox($connection, $email, $email_pwd);
    44         try {
    45               $mailsIds = $mailbox->searchMailBox('SUBJECT "'.$email_hash.'"');
    46               if($mailsIds) {
    47                   // on efface les emails
    48                   foreach($mailsIds as $mailsId)
    49                        $mailbox->deleteMail($mailsId);
    50                  
    51                   ecrire_meta('facteurmonitoring_etat', 'OK');
    52                   spip_log("[reception] OK, email lu $email_hash","facteurmonitoring");
    53                  
    54               } else {                 
    55                   spip_log("[reception] NOTOK, erreur: email introuvable $email_hash","facteurmonitoring");       
    56               }
     43        $mbox = @imap_open($connection, $email, $email_pwd);
     44         
     45        if (FALSE === $mbox) {
     46                spip_log("[config] "._T('facteurmonitoring:test_connection_notok'),"facteurmonitoring");                               
     47        } else {
     48                // lecture boite                 
     49                $info = imap_check($mbox);
     50                if (FALSE === $info) {
     51                    spip_log("[config] "._T('facteurmonitoring:test_connection_notok'),"facteurmonitoring");                   
     52                }  else {
     53                    // to do search msg
     54                    $msgs = imap_search($mbox, 'SUBJECT "'.$email_hash.'"', SE_UID);
     55                   
     56                    if (count($msgs)) {
     57                       // on efface les emails
     58                       foreach ($msgs as $msg) {
     59                            imap_delete($mbox, $msg, FT_UID);
     60                            // TODO: apparement la fonction marche mal sous GMAIL
     61                       }
     62                       imap_expunge($mbox);
     63                       ecrire_meta('facteurmonitoring_etat', 'OK');
     64                       spip_log("[reception] OK, email lu $email_hash","facteurmonitoring");
     65                       
     66                    }  else {
     67                       spip_log("[reception] NOTOK, erreur: email introuvable $email_hash","facteurmonitoring");
     68                    }
     69
     70                }
     71          }
    5772       
    58         } catch(Exception $e){
    59               spip_log("[reception] NOTOK, erreur: boite inaccessible en lecture","facteurmonitoring");
    60         }
     73
    6174    } else {       
    6275      spip_log("[reception] NOTOK, erreur: email hash vide","facteurmonitoring");
  • _plugins_/facteurmonitoring/paquet.xml

    r90984 r91504  
    22        prefix="facteurmonitoring"
    33        categorie="maintenance"
    4         version="1.0.3"
     4        version="1.1.0"
    55        etat="dev"
    66        compatibilite="[3.0.19;3.1.*]"
  • _plugins_/facteurmonitoring/prive/squelettes/contenu/configurer_facteurmonitoring_fonctions.php

    r90981 r91504  
    1111        return _T('facteurmonitoring:test_imap_exist_false');
    1212    }
    13    
    14    
    1513}
    1614
     
    3028   
    3129   
    32 
    3330   if ($hote_imap!="" && function_exists('imap_open')) {
    3431         
    35           // on se connecte en IMAP pour tester la connection
    36           include_spip("lib/PhpImap/MailBox");
    37      
     32          // on se connecte en IMAP pour tester la connection       
    3833          $connection = '{'.$hote_imap.':'.$hote_port.'}'.$hote_inbox;
    39           $mailbox = new PhpImap\Mailbox($connection, $email, $email_pwd);
     34          $mbox = @imap_open($connection, $email, $email_pwd, OP_READONLY);
    4035         
    41           try {
    42               $mailsIds = $mailbox->searchMailBox('NEW');
    43               return _T('facteurmonitoring:test_connection_ok');   
    44           } catch(Exception $e){
    45               return _T('facteurmonitoring:test_connection_notok');   
     36          if (FALSE === $mbox) {
     37                return _T('facteurmonitoring:test_connection_notok');                 
     38          } else {
     39                // lecture boite                 
     40                $info = imap_check($mbox);
     41                if (FALSE === $info) {
     42                    return _T('facteurmonitoring:test_connection_notok');                     
     43                }  else {
     44                    return _T('facteurmonitoring:test_connection_ok');
     45                }
    4646          }
    47 
    4847           
    4948   }
     
    5251}
    5352
     53
     54
    5455?>
Note: See TracChangeset for help on using the changeset viewer.