Changeset 10816
- Timestamp:
- May 8, 2011, 12:50:02 PM (13 years ago)
- Location:
- extensions/Mail_supervisor
- Files:
-
- 1 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/Mail_supervisor/admin/mail_superv_admin.php
r10419 r10816 287 287 288 288 if (function_exists('get_user_language_desc') ) $message = get_user_language_desc($message); 289 290 if ( $_POST['Submit']==l10n('Sv_Envoyer') ) { 289 if ( $_POST['Submit']==l10n('Sv_Valider') ) { 290 $mails_donnees['message_test']= str_replace('"',"'",$message) ; 291 mail_supervisor::sauve_donnees(); 292 $_POST['Submit']=""; 293 }else if ( $_POST['Submit']==l10n('Sv_Envoyer') ) { 291 294 /* 292 295 * send en email to user's group … … 306 309 $_POST['group'], 307 310 get_str_email_format(true), 308 get_l10n_args('[%s] ---> %s', array($titre,'Information') ), //sujet 309 'cat_group_info', // template 310 array ('CPL_CONTENT' => $message."\n\n".$user['username'] ), 311 '' ); 311 get_l10n_args('[%s] %s', array($conf['gallery_title'],'Test Mail_supervisor') ), //sujet 312 MAIL_SUPERV_PATH_ABS . 'admin/cat_group_info', // template 313 array ( 'titre' => 'Mail_supervisor', 314 'CPL_CONTENT' => $message, 315 'signature' => $user['username'] 316 ), 317 '' 318 ); 312 319 313 320 $mails_donnees['message_test']= str_replace('"',"'",$message) ; … … 352 359 ); 353 360 //================================================================= 354 $destinataires= implode("<br />",get_liste($group_id)); 355 if( $destinataires !="" ) 356 $infos_message .= " List :<hr>" . $destinataires . "<hr>" ; 361 /* 362 $List_dest=get_liste($group_id) ; 363 //$destinataires= implode("<br />".$chk_cl,get_liste($group_id)); 364 */ 365 366 367 $destinataires=""; 368 $List_dest = get_liste($group_id) ; 369 foreach ($List_dest as $dest_id){ 370 $destinataires .= $dest_id['username']. "<" . $dest_id['email'].'><br />'; 371 } 372 if( $destinataires !="" ) $infos_message .= " List :<hr>" . $destinataires . "<hr>" ; 357 373 358 374 $template->assign( 359 375 array( 360 'Groupe' => $groups, 361 'message_test' => $mails_donnees['message_test'] , 362 'liste' => $destinataires , 363 'version' => $version , 364 'MAIL_CONTENT' => $mails_donnees['message_test'], 365 'path_js' => $path_js, 366 'MAIL_SUPERV_PATH_ABS' => MAIL_SUPERV_PATH_ABS, 367 'MAIL_SUPERV_PATH' => MAIL_SUPERV_PATH , 376 'Groupe' => $groups, 377 'message_test' => $mails_donnees['message_test'] , 378 'liste' => get_liste($group_id) , 379 380 'version' => $version , 381 'MAIL_CONTENT' => $mails_donnees['message_test'], 382 'path_js' => $path_js, 383 'MAIL_SUPERV_PATH_ABS' => MAIL_SUPERV_PATH_ABS, 384 'MAIL_SUPERV_PATH' => MAIL_SUPERV_PATH , 368 385 ) 369 );386 ); 370 387 371 388 $template->set_filenames(array('plugin_admin_content' => realpath(MAIL_SUPERV_PATH . 'admin/mail_superv_test.tpl'))); -
extensions/Mail_supervisor/admin/mail_superv_test.tpl
r10419 r10816 20 20 </td> 21 21 <td > 22 {$liste} 22 {if not empty($liste)} 23 24 {foreach from=$liste item=group name=group_loop } 25 26 {$group.username}<{$group.email}><br /> 27 {/foreach} 28 {/if} 23 29 </td> 24 30 </tr> … … 27 33 <td><strong>{'Sv_mail_content'|@translate}</strong></td> 28 34 <td> 29 <textarea name="MAIL_CONTENT" id="MAIL_CONTENT" class="description">{$MAIL_CONTENT}</textarea>35 <textarea name="MAIL_CONTENT" id="MAIL_CONTENT" class="description">{$MAIL_CONTENT}</textarea> 30 36 </td> 31 37 </tr> … … 34 40 </fieldset> 35 41 <p> 42 <input class="submit" type="submit" name="Submit" value="{'Sv_Valider'|@translate}" {$tag_input_enabled} /> 36 43 <input class="submit" type="submit" name="Submit" value="{'Sv_refresh'|@translate}" {$tag_input_enabled} /> 37 44 <input class="submit" type="submit" name="Submit" id="Envoyer" value="{'Sv_Envoyer'|@translate}" {$tag_input_enabled} /> -
extensions/Mail_supervisor/include/Scripts.js
r10155 r10816 56 56 // get_script_geo(); 57 57 58 if ( typeof is_supervisor=="boolean" ){58 if (typeof is_supervisor == "boolean") { 59 59 jQuery('.cluetip').cluetip({ 60 60 width: 300, … … 76 76 }); 77 77 78 jQuery("input").click(function () { 79 80 if (this.name != "chk_mail_list") return; 81 // this.alt 82 // this.rel 83 //form.submit(); 84 85 return; 86 87 88 89 90 }); 78 91 79 92 function ajout_action(titre, message, valeur) { -
extensions/Mail_supervisor/include/fonctions.php
r10419 r10816 159 159 while ($group = mysql_fetch_array($datas,MYSQL_ASSOC)){ 160 160 if (!empty($group['email'])){ 161 array_push($groups, format_email($group['username'], $group['email'] )); 161 //array_push($groups, format_email($group['username'], $group['email'] )); 162 array_push($groups, 163 array( 'username' => $group['username'], 164 'email' => $group['email'], 165 'format_email' => format_email($group['username'], $group['email'] ) 166 ) 167 ); 162 168 } 163 169 } -
extensions/Mail_supervisor/include/function_test_send.php
r10419 r10816 55 55 56 56 57 $groups=get_liste($group_id) ;57 $groups=get_liste($group_id).dest; 58 58 59 59 //======================================================================================= -
extensions/Mail_supervisor/main.inc.php
r10564 r10816 42 42 include_once (MAIL_SUPERV_PATH.'include/fonctions.php'); 43 43 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); 45 48 46 49 // remove_event_handler('send_mail', 'pwg_send_mail'); … … 54 57 55 58 if ($mails_options['no_mail_list']=='on' || $mails_options['no_connect'] == 'on' ) { 56 59 if (kill_list()) { 57 60 $nb_destinataires=0; ; 58 61 $envoie_ok= false ; 59 62 $erreur_message .= "<BR />".l10n('Sv_is_a_spam') ; 60 63 $infos_message = l10n('Sv_mail_not_send')."<BR />"; 61 if ($mails_options['no_connect'] == 'on' ){ 64 if ($mails_options['no_connect'] == 'on' ){ 62 65 if ($user['status'] == 'webmaster'){ 63 66 //---------- continuer si web master ---------- 64 67 }else{ 68 trigger_event('mail_supervisor_send_mail', "DIE(KILL) : " . $ip . ' = ' . $user['status']); 65 69 if (!isset($_GET['admin'])) { 66 70 die('Blacklist : <br />' .$erreur_message. '<br /> Hacking attempt!'); … … 71 75 } 72 76 } 73 trigger_event('cl_kill_send_mail', $ip);74 75 77 trigger_event('mail_supervisor_send_mail', "Kill : " . $ip . ' = ' . $user['status'] . "noconnect==off"); 78 return true; 79 } 76 80 } 77 81 // lecture donnees ------------- … … 168 172 $infos_message .= " " ; 169 173 } 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 194 203 195 204 $ret=false; … … 199 208 ob_start(); 200 209 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); 211 220 } else { 212 221 //================== Est en quarantaine ======================= … … 243 252 $infos_message .= l10n('Sv_mail_not_send'); 244 253 } 245 $infos_message .= "<hr>"; 254 $infos_message .= "<hr>"; 255 trigger_event('mail_supervisor_message', $infos_message ); 246 256 mail_supervisor::sauve_donnees(); 247 257 mail_supervisor::affiche_message(); 258 248 259 return true ; 249 260 } … … 298 309 return $ret ; 299 310 } 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 */ 329 function 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 300 448 ?>
Note: See TracChangeset
for help on using the changeset viewer.