Ignore:
Timestamp:
Oct 13, 2009, 1:40:08 PM (15 years ago)
Author:
cljosse
Message:

[mail_supervisor] debug warning messages.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/Mail_supervisor/main.inc.php

    r4023 r4029  
    11<?php
     2// +-----------------------------------------------------------------------+
     3// | Piwigo - a PHP based picture gallery                                  |
     4// +-----------------------------------------------------------------------+
     5// | Copyright(C) 2008-2009 Piwigo Team                  http://piwigo.org |
     6// | Copyright(C) 2003-2008 PhpWebGallery Team    http://phpwebgallery.net |
     7// | Copyright(C) 2002-2003 Pierrick LE GALL   http://le-gall.net/pierrick |
     8// +-----------------------------------------------------------------------+
     9// | This program is free software; you can redistribute it and/or modify  |
     10// | it under the terms of the GNU General Public License as published by  |
     11// | the Free Software Foundation                                          |
     12// |                                                                       |
     13// | This program is distributed in the hope that it will be useful, but   |
     14// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
     15// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
     16// | General Public License for more details.                              |
     17// |                                                                       |
     18// | You should have received a copy of the GNU General Public License     |
     19// | along with this program; if not, write to the Free Software           |
     20// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
     21// | USA.                                                                  |
     22// +-----------------------------------------------------------------------+
     23
    224/*
    325Plugin Name: Mail supervisor
    4 Version: 1.0.1
     26Version: 1.0.2
    527Description:  Mail supervisor surveille l'envoie des mails.
    628Plugin URI: http://piwigo.org/ext/extension_view.php?eid=315
     
    1133
    1234if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
     35
    1336define('mail_superv_DIR' , basename(dirname(__FILE__)));
    1437define('MAIL_SUPERV_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
     
    2346function clj_mail($result, $mailto, $subject, $content, $headers, $args)
    2447{
    25     global $conf, $user, $lang_info,  $conf_mail,$mails_options,$mails_données , $template,$page ,$erreur_message;
     48    global $conf, $user, $lang_info,  $conf_mail,$mails_options,$mails_données , $template,$page ,$erreur_message,$infos_message;
    2649        // lecture config table -------------
    2750
    28 
     51   
    2952        $mails_options = explode("," , $conf['mail_superv']);
    30        
     53        $infos_message="";
     54        $message ="";
     55        $erreur_messages="";
     56
    3157        // lecture données       -------------
    3258    $mails_données = Get_Datas();
     59
    3360       
    3461        $nb_mails         =     $mails_données['nb_mails'] ;
     
    3663       
    3764        $reste =    $mails_données['reste'] ;
    38         $reste_mail =    $mails_données['reste_mail'] ;
    39         $reste_spam =    $mails_données['reste_spam'] ;
    40        
    41  $mails_données['quarantaine'] =    ( $mails_données['reste'] >0 ) ? "true" : "false" ;
    42  
    43 
    44     $match=array("<",">");
    45     $string=array("&lt;","&gt;") ;
    46         $search=array("D","H","M","S","W");
    47         $replace=array(" day"," Hour"," minute"," second"," week");
    48        
    49 $header_message='<pre>
    50 Destinataire :'.$mailto.'
    51 Headers      :
    52 '.str_replace( $match,$string, $headers).'
    53 Sujet        :'.$subject.'
    54 </pre>';
    55 
     65       
     66       
     67        $rest_mail =    $mails_données['rest_mail'] ;
     68        if ($rest_mail <=0 || $mails_données['nb_mails'] ==0 ){
     69           $mails_données['nb_mails'] =0 ;
     70           $mails_données['date_mail'] = time();
     71        }
     72       
     73        $rest_spam =    $mails_données['rest_spam'] ;
     74        if ($rest_spam <=0 || $mails_données['nb_spams'] ==0 ){
     75           $mails_données['nb_spams'] =0 ;
     76           $mails_données['date_spam'] = time();
     77        }
     78       
     79        $alerte =   ( $mails_données['reste'] >0 ) ? true : false ;
     80       
     81        $alerte_mail =    ( $mails_données['nb_mails'] >   $mails_données['nb_mails_maxi'] ) ? true : false ;
     82        $alerte_spam =    (  $mails_données['nb_spams'] >   $mails_données['nb_spams_maxi'] ) ? true : false ;
     83       
     84 
     85 if ( ( !$alerte  && !$alerte_spam  && !$alerte_mail ) )
     86        {
     87                 
    5688  $nb_destinataires=0;
     89 
    5790 if ($mailto<>"" )  $nb_destinataires +=1;
    5891   //================= réécriture de l'entête ===============================
     
    6194        if ($mailto=="")        $mailto=$conf_mail['email_webmaster'];
    6295}
    63 if ($mails_options[1] == 'on') {
    6496                if (!empty($args['Cc']))
    65                 {
    66                   $nb_destinataires += count($args['Cc']);
    67                   $headers= corrige_header('Cc:',$headers);
     97                {$nb_destinataires += count($args['Cc']);
     98                 if ($mails_options[1] == 'on') {  $headers= corrige_header('Cc:',$headers);}
    6899                }
    69100                if (!empty($args['Bcc']))
    70                 {
    71                   $nb_destinataires += count($args['Bcc']);
    72                   $headers      = corrige_header('Bcc',$headers);
     101                {  $nb_destinataires += count($args['Bcc']);
     102                   if ($mails_options[1] == 'on') {  $headers   = corrige_header('Bcc',$headers);}
    73103                }
    74104
    75   }
    76105
    77106if ($mails_options[2]=='on')   {
     
    89118                $content =$texte .$content ;
    90119}
    91 
    92        
     120 
    93121$ret=false;
    94  if (    ($mails_données['quarantaine']=="false") )
    95   {
    96         //======== Non mise en quarantaine =============
    97 
     122
     123         $infos_message .=$nb_destinataires;
     124               
     125                       
     126            //======== Non mise en quarantaine =============
    98127                ob_start();
    99                         $ret = mail($mailto, 'Plugin'.$subject, $content, $headers);
    100                         $message = ob_get_contents();
    101         ob_end_clean();
     128                $ret = false;
     129                 if ($nb_destinataires > 0) {
     130                         $ret = mail($mailto, $subject, $content, $headers);
     131 
     132                        }else{
     133                           $message .='Nombre de destinataires = 0';
     134                        }
     135                        $message .= ob_get_contents();
     136            ob_end_clean();
     137                        $mails_données['message']=$message;     
     138                        Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto);
    102139               
    103                         $mails_données['message']=$message;     
    104                         $est_un_spam =!(strpos(strtolower($message), 'spam') === false);
    105                 if ($est_un_spam == false) {
    106                    //--- Non détection de spam ------------------
    107                          if ($mails_données['nb_mails']==0) {
    108                                 $date_mail=time();
    109                                        
    110                                         $mails_periode="+".str_replace( $search, $replace, $mails_données['nb_mails_periode']);
    111                                         $next_day =  strtotime($mails_periode,time());
    112                                 $mails_données['date_mail'] =  $next_day;
    113                                 }       
    114                                 $next_day = time() + (0);
    115                                 $mails_données['date_quarantaine'] = $next_day ;
     140       
     141       
     142        } else {
     143
     144        //================== Est en quarantaine =======================
     145                $erreur_message .=      l10n('To_day_is')."<br />";
     146                        if ($alerte_spam ) {
     147                        $type="Spams";
     148                                $d1=$mails_données['nb_spams'];
     149                                $d2=$mails_données['date_spam'];
     150                                $d3= $mails_données['rest_spam'];
     151                                $d4=time()+$d3 ;
     152                        }
     153 
     154                        if ($alerte_mail) {
     155                        $type="Mails";
     156                       
     157                                $d1=$mails_données['nb_mails'];
     158                                $d2=$mails_données['date_mail'];
     159                                $d3= $mails_données['rest_mail'];
     160                                $d4=time()+$d3 ;
     161                        }
     162                        if ($alerte) {
     163                        $type="Spams(Quarantaine)";
     164                                $d1=$mails_données['nb_spams'];
     165                                $d2=$mails_données['date_quarantaine'];
     166                                $d3= $mails_données['reste'];
     167                                $d4=time()+$d3 ;
     168 }
     169
     170
     171$d2=date(l10n('formatdate'),$d2);
     172$d3=int_to_heure($d3) ;
     173$d4=date(l10n('formatdate'),$d4);
     174
     175                $erreur_message .='<br />'.sprintf(l10n('mise_en_quarantaine %s %s %s %s %s'),$type,$d1,$d2,$d3,$d4).'<br />';
     176 }                     
     177 sauve_données();
     178 return true ;
     179}
     180//===========================================================================================   
     181function Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto)
     182{                       
     183         global $conf, $user, $lang_info,  $conf_mail,$mails_options,$mails_données , $template,$page ,$infos_message,$erreur_message,$args;
     184    $match=array("<",">");
     185    $string=array("&lt;","&gt;") ;       
     186
     187       
     188        $est_un_spam =!(strpos(strtolower($message), 'spam') === false);
     189        $headers=str_replace( $match,$string, $headers);
     190       
     191        if ( ($ret==false) || ($est_un_spam==true) || ($nb_destinataires == 0) ) {
     192                 ;                              // Bad recipient address syntax
     193                $pos1 = strpos(strtolower($message), 'bad recipient address syntax');
     194                if (  !($pos1 === false) ){
     195                        $erreur_message .='Détection de : Bad recipient address syntax .';
     196                        $erreur_message .='Vérifiez les destinataires: (Bcc,Cc,To)<br />';
     197                        }       
     198       
     199        $erreur_message .= sprintf(l10n('debug_message %s %s %s %s %s'),($ret==true)? "true" : "false",$message,$mailto,$headers,$nb_destinataires);
     200       //=============== La fonction mail à retournéeune erreur =========================               
     201
     202                               
     203                                }       
     204                               
     205        if ($est_un_spam == false)
     206                        {
     207                        if ($mails_données['nb_mails']==0) {    $mails_données['date_mail'] =  time();  }       
    116208                        $mails_données['nb_mails'] += $nb_destinataires;
    117           // teste limite atteinte :
    118        
    119           if (($mails_données['nb_mails'] >= $mails_données['nb_mails_maxi']))
    120                         {
    121                         $erreur_message .= "ALERTE !!! DANGER DE MISE EN QUARANTAINE PAR VOTRE FAI <br />" ;
    122                         $erreur_message .=  "Vous avez d&eacute;pass&eacute; le nombre de mails admissibles par semaine. <br /> <br />";
    123                         $erreur_message .='Date du premier mail: ' . date('d-M-Y H:m:s',$mails_données['date_mail']);
    124                         $rest_mail=  $mails_données['date_mail']-time() ;
    125                         $erreur_message .= '<br />Encore : '. int_to_heure($rest_mail) ;
    126                        
    127                                 if ( (float) $rest_mail <= 0)
    128                                         {
    129                                         $mails_periode="+".str_replace( $search, $replace, $mails_données['nb_mails_periode']);
    130                                         $next_day =  strtotime($mails_periode,time());
    131                                 $mails_données['date_mail'] =  $next_day;
    132                                
    133                                         }
    134                        
    135                        
    136                         }
    137                         if ($ret==false) {     
    138                         //=============== La fonction mail à retournée false=========================           
    139                                 $erreur_message .= '<br />---- La fonction mail &agrave; retourn&eacute;e [false]  ------<br />';
    140                                         $erreur_message .='-------- MESSAGE erreur : -------------<br />';
    141                                         $erreur_message .=$message ;                            // Bad recipient address syntax
    142                                 $pos1 = strpos(strtolower($message), 'bad recipient address syntax');
    143                                 if (  !($pos1 === false) ){
    144                                 $erreur_message .='D&eacute;tection de : Bad recipient address syntax .';
    145                                         $erreur_message .='V&eacuterifiez les destinataires: (Bcc,Cc,To)<br />';
    146                                         }
    147                                         $erreur_message .='mailto:   "'.$mailto.'"<br />';
    148 
    149                                         $erreur_message .='--------HEADERS -----------------<br />
    150                                         ';
    151                                         $erreur_message .=$headers ;
    152                                        
    153 
    154                                 }
    155                        
    156                 }else{
    157                 //--- Détection de spam ------------------
    158                        
    159                         if ($mails_données['nb_spams']==0) {  $mails_données['date_spam']= time();      }
    160                         $mails_données['nb_spams'] += $nb_destinataires;
    161                        
    162                         $est_un_spam =!(strpos(strtolower($message), 'trop de spam') === false);
    163                        
    164                         if ( $est_un_spam ) {
    165                             $mails_données['quarantaine']=true;
    166                                  $spams_periode="+".str_replace($search, $replace, $mails_données['nb_spams_periode']);
    167                                
    168                                         $next_day =  strtotime(  $spams_periode);
    169                                        
    170                         //      $next_day =  strtotime('+2 day');
    171                                 $mails_données['date_quarantaine']= $next_day       ;                   
    172209                        }
    173210                        else
    174211                        {
    175                         $mails_données['quarantaine']= ($mails_données['nb_spams'] >= $mails_données['nb_spams_maxi']);
    176                 }
    177                 //      $next_day = time() + (2 * 24 * 60 * 60);
    178                         if ($mails_données['quarantaine'])
    179                                 {
    180                                 $erreur_message .= "ALERTE !!! DANGER DE MISE EN QUARANTAINE  <br />" ;
    181                                 $erreur_message .=  "Vous avez d&eacute;pass&eacute; le nombre de spmas admissibles. <br /> <br />";
    182                                 }
    183                         $erreur_message .="<br> Detection $message <br />".
    184                                 "Nombre de spams d&eacute;tect&eacutes; ".$mails_données['nb_spams'];
     212                                $mails_données['nb_spams'] += $nb_destinataires;                       
     213                            //--- Détection de spam ------------------
     214                                if ($mails_données['nb_spams']==0) {$mails_données['date_spam'] = time();       }
     215
     216                                $trop_de_spam =!(strpos(strtolower($message), 'trop de spam') === false);
     217                                if ( $trop_de_spam ) {
     218                                                $mails_données['nb_spams_maxi']=$mails_données['nb_spams'];
     219                                                $quarantaine_periode="+".str_replace( $period_search, $period_match, $mails_données['quarantaine_periode']);
     220                                                $next_day =  strtotime($quarantaine_periode);  // détection de 'Trop de spam
     221                                                $mails_données['date_quarantaine']= time()  ;   
     222                                                $mails_données['quarantaine']= true    ;       
     223                                                $infos_message=memo_var($mails_données);
     224                                        }
     225
    185226                        }
    186227 
    187         }else{
    188                 //======== Mise en quarantaine       =============
    189 $erreur_message =  '<br />
    190 Nous sommes le :       '. date('d-M-Y H:m:s') ."<br />";
    191 
    192                 if      ($reste >= 0) {
    193 $erreur_message .=
    194 "MISE EN QUARANTAINE !"."<br />".
    195 "Nombre de spams envoy&eacute;s :". $mails_données['nb_spams']."<br />".
    196 "Depuis le               :". date('d-M-Y H:m:s',$mails_données['date_spam'])."<br />".         
    197 "Il vous reste encore ". int_to_heure($mails_données['reste'])  . " avant le d&eacute;blocage par votre FAI<br />
    198   qui devrait avoir lieu le ".date('d-M-Y H:m:s',$mails_données['date_quarantaine'])."." ;
    199                
    200                 }
    201                        
    202                 $erreur_message .=  '</pre>'.
    203                 '
    204          
    205           '.
    206         "Dernier message re&ccedil;u.:<br />". $mails_données['message']. "<br /> ";
    207           $ret = "break";
    208  }
    209 
    210   sauve_données();
     228
     229 
     230
     231 
    211232 $ret=true;
    212  
    213233 return $ret ;
    214234 
Note: See TracChangeset for help on using the changeset viewer.