Ignore:
Timestamp:
05/08/11 12:50:02 (9 years ago)
Author:
cljosse
Message:

[extensions] mail_supervisor fix bug in test

File:
1 edited

Legend:

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

    r10564 r10816  
    4242  include_once (MAIL_SUPERV_PATH.'include/fonctions.php'); 
    4343  load_language('plugin.lang', MAIL_SUPERV_PATH); 
    44    trigger_event('cl_begin_send_mail'); 
     44 
     45  $arg_trigg= array($mailto, $subject, $content, $headers, $args); 
     46 
     47    trigger_event('mail_supervisor_clj_mail',$arg_trigg); 
    4548 
    4649 // remove_event_handler('send_mail', 'pwg_send_mail'); 
     
    5457 
    5558  if ($mails_options['no_mail_list']=='on' || $mails_options['no_connect'] == 'on' )    { 
    56         if (kill_list()) { 
     59    if (kill_list()) { 
    5760      $nb_destinataires=0; ; 
    5861      $envoie_ok= false ; 
    5962      $erreur_message .= "<BR />".l10n('Sv_is_a_spam') ; 
    6063      $infos_message = l10n('Sv_mail_not_send')."<BR />"; 
    61       if ($mails_options['no_connect'] == 'on' ){ 
     64      if ($mails_options['no_connect'] == 'on' ){           
    6265          if ($user['status'] == 'webmaster'){ 
    6366          //---------- continuer si web master ---------- 
    6467          }else{ 
     68             trigger_event('mail_supervisor_send_mail', "DIE(KILL) : " . $ip . ' = ' . $user['status']); 
    6569              if (!isset($_GET['admin'])) { 
    6670                      die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!'); 
     
    7175          } 
    7276      } 
    73        trigger_event('cl_kill_send_mail', $ip); 
    74          return true; 
    75         } 
     77      trigger_event('mail_supervisor_send_mail', "Kill : " . $ip . ' = ' . $user['status'] . "noconnect==off"); 
     78      return true; 
     79      } 
    7680    } 
    7781  // lecture donnees       ------------- 
     
    168172         $infos_message .=  " " ; 
    169173    } 
    170  
    171  
    172             //============================================================================= 
    173             if ($mails_options['check_header_text']=='on')   { 
    174               $texte = "This is a multi-part message in MIME format.\n"; 
    175               $texte .= "-----=".$conf_mail['boundary_key']."\n"; 
    176               $texte .= "Ceci est un message est au format MIME.\n"; 
    177               $texte .= 'Content-Type: text/plain; charset="UTF-8"'."\n"; 
    178               $texte .= 'Content-Transfer-Encoding: 8bit'."\n\n"; 
    179               $texte .= $mails_donnees['header_text']; // A voir texte brut... 
    180               $texte .= "\n\n"; 
    181               $content =$texte .$content ; 
    182             } 
    183             // corrige erreur 'mail dropped, bare LF found' 
    184           /*   if ( preg_match('/\n\./',$content)){ 
    185              $content=preg_replace('/\n\./', '/\n\.\./', $content); 
    186  
    187    //   $infos_message .= $content ; 
    188              } 
    189              $content = str_replace("\n.", "\n/./.", $content); 
    190              $headers = str_replace("\n.", "\n..", $headers); 
    191             $subject = str_replace("\n.", "\n..", $subject); 
    192              $mailto = str_replace("\n.", "\n..", $mailto); 
    193        */ 
     174    
     175  $content= cl_pwg_mail($args); 
     176   
     177 
     178    if (  !preg_match('/'. $conf_mail['boundary_key'] .'/', $headers)){ 
     179        $erreur_message .=   "ERREUR manque : boundary_key dans le headers <br />"; 
     180        $infos_message = l10n('Sv_mail_not_send');  
     181         $envoie_ok= false ; 
     182    } 
     183  
     184 
     185 
     186    if( isset($conf['debug_mail']) && $conf['debug_mail']=="true") { 
     187 
     188    //    $erreur_message .="DEBUG:"."<br />Theme: ".    $file. "<br />"; 
     189 
     190        $content1 =   htmlspecialchars( var_export($headers, true ) );    
     191        $erreur_message .="<br />DEBUG -> "." Header: <br />".   $content1 ."<br />"; 
     192 
     193        $content1 =   htmlspecialchars( var_export($mailto, true ) );    
     194        $erreur_message .="<br />DEBUG -> "." Mail to: <br />".   $content1 ."<br />"; 
     195 
     196        $content1 =   htmlspecialchars( var_export($subject ,true ) );    
     197        $erreur_message .="<br />DEBUG -> "." Sujet: <br />".   $content1 ."<br />"; 
     198 
     199        $content1 =   htmlspecialchars( var_export($content, true ) );     
     200        $erreur_message .="<br />DEBUG -> "." Contenu:<br />" . $content1 ."<br />"; 
     201    } 
     202 
    194203 
    195204            $ret=false; 
     
    199208            ob_start(); 
    200209              if ($nb_destinataires > 0) { 
    201  
    202             if( $envoie_ok)  $ret = mail($mailto, $subject,$content, $headers); 
    203  
    204           }else{ 
    205             $message .= l10n('Sv_no_receiver_available'); 
    206           } 
    207         $message .= ob_get_contents(); 
    208         ob_end_clean(); 
    209         $mails_donnees['message']=$message; 
    210         Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto); 
     210                if( $envoie_ok)  $ret = mail($mailto, $subject,$content, $headers); 
     211              }else{ 
     212                $message .= l10n('Sv_no_receiver_available'); 
     213              } 
     214              $message .= ob_get_contents(); 
     215              ob_end_clean(); 
     216              $arg_trigg= array("Nb destinataires: " . $nb_destinataires,"Mail to: ".$mailto,"content: ".$content, " Reponse : " . $message); 
     217              trigger_event('mail_supervisor_mail', $arg_trigg ); 
     218              $mails_donnees['message']=$message; 
     219              Gestion_erreurs($message,$ret,$nb_destinataires,$headers,$mailto); 
    211220            } else { 
    212221                //================== Est en quarantaine ======================= 
     
    243252            $infos_message .= l10n('Sv_mail_not_send'); 
    244253            } 
    245            $infos_message .= "<hr>"; 
     254           $infos_message .= "<hr>";  
     255           trigger_event('mail_supervisor_message',  $infos_message ); 
    246256    mail_supervisor::sauve_donnees(); 
    247257    mail_supervisor::affiche_message(); 
     258     
    248259    return true ; 
    249260} 
     
    298309 return $ret ; 
    299310} 
     311 
     312/* 
     313 *  
     314 * 
     315 * @param: 
     316 *     
     317 *   - args: function params of mail function: 
     318 *       o from: sender [default value webmaster email] 
     319 *       o Cc: array of carbon copy receivers of the mail. [default value empty] 
     320 *       o Bcc: array of blind carbon copy receivers of the mail. [default value empty] 
     321 *       o subject  [default value 'Piwigo'] 
     322 *       o content: content of mail    [default value ''] 
     323 *       o content_format: format of mail content  [default value 'text/plain'] 
     324 *       o email_format: global mail format  [default value $conf_mail['default_email_format']] 
     325 *       o theme: template to use [default get_default_theme()] 
     326 * 
     327 * @return boolean (Ok or not) 
     328 */ 
     329function cl_pwg_mail(  $args = array()) 
     330{ 
     331  global $conf, $conf_mail, $lang_info, $page;    
     332  global $erreur_message ; 
     333  if (!isset($conf_mail)) { 
     334    $conf_mail = get_mail_configuration(); 
     335  } 
     336  if (empty($args['email_format']))  { 
     337    $args['email_format'] = $conf_mail['default_email_format']; 
     338  } 
     339  // Compute root_path in order have complete path 
     340  set_make_full_url();  
     341  if (!isset($args['content'])) { 
     342    $args['content'] = ''; 
     343  } 
     344  if (empty($args['content_format']))  { 
     345    $args['content_format'] = 'text/plain';  } 
     346  if (empty($args['theme']))  { 
     347    $args['theme'] = get_default_theme(); 
     348  } 
     349 
     350  // List on content-type 
     351  $content_type_list[] = $args['email_format']; 
     352  if (!empty($conf_mail['alternative_email_format']))  { 
     353    $content_type_list[] = $conf_mail['alternative_email_format']; 
     354  } 
     355  $content = ''; 
     356  foreach (array_unique($content_type_list) as $content_type) 
     357  { 
     358    // key compose of indexes witch allow ti cache mail data 
     359    $cache_key = $content_type.'-'.$lang_info['code'].'-'.$args['theme']; 
     360    unset($conf_mail[$cache_key]); 
     361    if (!isset($conf_mail[$cache_key])){ 
     362      if (!isset($conf_mail[$cache_key]['theme'])){ 
     363        $conf_mail[$cache_key]['theme'] = get_mail_template($content_type, $args['theme']); 
     364      } 
     365      $conf_mail[$cache_key]['theme']->set_filename('mail_header', 'header.tpl'); 
     366      $conf_mail[$cache_key]['theme']->set_filename('mail_footer', 'footer.tpl'); 
     367      $conf_mail[$cache_key]['theme']->assign( 
     368        array( 
     369          //Header 
     370          'BOUNDARY_KEY' => $conf_mail['boundary_key'], 
     371          'CONTENT_TYPE' => $content_type, 
     372          'CONTENT_ENCODING' => get_pwg_charset(), 
     373 
     374          // Footer 
     375          'GALLERY_URL' => get_gallery_home_url(), 
     376          'GALLERY_TITLE' => 
     377            isset($page['gallery_title']) ? 
     378                  $page['gallery_title'] : $conf['gallery_title'], 
     379          'VERSION' => $conf['show_version'] ? PHPWG_VERSION : '', 
     380          'PHPWG_URL' => PHPWG_URL, 
     381 
     382          'TITLE_MAIL' => urlencode(l10n('A comment on your site')), 
     383          'MAIL' => get_webmaster_mail_address() 
     384          )); 
     385 
     386      if ($content_type == 'text/html'){ 
     387        if ($conf_mail[$cache_key]['theme']->smarty->template_exists('global-mail-css.tpl')){ 
     388          $conf_mail[$cache_key]['theme']->set_filename('css', 'global-mail-css.tpl'); 
     389          $conf_mail[$cache_key]['theme']->assign_var_from_handle('GLOBAL_MAIL_CSS', 'css'); 
     390        } 
     391 
     392        $file = PHPWG_ROOT_PATH.'themes/'.$args['theme'].'/mail-css.tpl'; 
     393        if (is_file($file)){ 
     394          $conf_mail[$cache_key]['theme']->set_filename('css', realpath($file)); 
     395          $conf_mail[$cache_key]['theme']->assign_var_from_handle('MAIL_CSS', 'css'); 
     396        } 
     397      }  
     398 
     399      // what are displayed on the header of each mail ? 
     400      $conf_mail[$cache_key]['header'] = 
     401        $conf_mail[$cache_key]['theme']->parse('mail_header', true); 
     402 
     403      // what are displayed on the footer of each mail ? 
     404      $conf_mail[$cache_key]['footer'] = 
     405        $conf_mail[$cache_key]['theme']->parse('mail_footer', true); 
     406    } 
     407 
     408    // Header 
     409   $content.= $conf_mail[$cache_key]['header']; 
     410       // Content 
     411    if (($args['content_format'] == 'text/plain') and ($content_type == 'text/html')){ 
     412      $content.= '<p>'. 
     413                  nl2br( 
     414                    preg_replace("/(http:\/\/)([^\s,]*)/i", 
     415                                 "<a href='$1$2' class='thumblnk'>$1$2</a>", 
     416                                 htmlspecialchars($args['content']))). 
     417                  '</p>'; 
     418    } else if (($args['content_format'] == 'text/html') and ($content_type == 'text/plain')) { 
     419      // convert html text to plain text 
     420      $content.= strip_tags($args['content']); 
     421    } else { 
     422      $content.= $args['content']; 
     423    } 
     424 
     425    // Footer   
     426    $content.= $conf_mail[$cache_key]['footer']."\n\n"; 
     427     
     428    // Close boundary 
     429    $content.= "\n\n".'-----='.$conf_mail['boundary_key'].'--'."\n\n"; 
     430  } 
     431   // Undo Compute root_path in order have complete path 
     432  unset_make_full_url();  
     433 
     434  $pattern = '/(http:\/\/)([0-9].*)([0-9]\/)/';  
     435  if(preg_match($pattern, $content)){ 
     436  //remplace 192.168.1.25 par rien ?? 
     437      $replacement = '${1}';  
     438      $content = preg_replace( $pattern, $replacement,  $content );  
     439      //$content1 =   htmlspecialchars( var_export($content, true ) );      
     440} 
     441 
     442      $content= preg_replace('#(?<!\r)\n#si', "\r\n", $content); //drop LF barre 
     443 
     444  return    $content; 
     445  
     446} 
     447 
    300448?> 
Note: See TracChangeset for help on using the changeset viewer.