nb_mails ; $next_day = $infos->next_day ; $reste = $infos->reste ; $quarantaine = $infos->quarantaine ; $admins = $infos->admins ; $ret=" false" ; //================= réécriture de l'entête =============================== if (!isset( $mailto)){ echo 'erreur maito absent'; exit(); } if (empty( $mailto)) { // //$mailto=""; if ($conf_free[0]=='on') { $mailto=$conf_mail['email_webmaster']; } if ($conf_free[1]=='on') { if (!empty($args['Cc'])) { $headers= corrige_headers('Cc:',$headers); } if (!empty($args['Bcc'])) { $headers = corrige_headers('Bcc',$headers); } } } if ($conf_free[2]=='on') { $texte = "This is a multi-part message in MIME format.\n"; $texte .= "-----=".$conf_mail['boundary_key']."\n"; $texte .= "Ceci est un message est au format MIME.\n"; $texte .= 'Content-Type: text/plain; charset="UTF-8"'."\n"; $texte .= 'Content-Transfer-Encoding: 8bit'."\n\n"; $texte .= $args['content']; // A voir texte brut... $texte .= "\n\n"; $content =$texte .$content ; } $ret=false; if ( $reste <=0 ) { ob_start(); $ret = mail($mailto, $subject, $content, $headers); $message = ob_get_contents()."\n"; //ob_flush(); ob_end_clean(); //Trop de spam $pos = strpos(strtolower($message), 'spam'); $query = ' UPDATE '.FREE_MAIL_TABLE.' SET message="'. $message.'. " ;'; pwg_query($query); if ($pos === false) { if ($nb_mails==0) { $date_mail=time(); $query = ' UPDATE '.FREE_MAIL_TABLE.' SET date_mail="'. $date_mail.'" ;'; pwg_query($query); } $next_day = time() + (0); //20 secondes $query = ' UPDATE '.FREE_MAIL_TABLE.' SET date_quarantaine="'. $next_day .'" ;'; pwg_query($query); $nb_mails += 1; $query = ' UPDATE '.FREE_MAIL_TABLE.' SET nb_mails="'. $nb_mails.'" ;'; pwg_query($query); if ($ret) { return $ret; } echo '
';
		echo '
		---- La fonction mail à retournée [false]  ------
		';
echo 		'mailto:   '.$mailto.'
';
echo 'conf_free[0]='.$conf_free[0].' Envoie du mail vers le webmaster par le header(To)   ; essayer de passer la variable à "on" si "off" 
';
echo 'conf_free[1]='.$conf_free[1].' Modifie le format des headers (Bcc,Cc)               ; essayer de passer la variable à "on" si "off" 
';
echo 'conf_free[2]='.$conf_free[2].' Envoie une partie texte dans le header(spam)         ; essayer de passer la variable à "on" si "off" 
';
echo "pour modifier la variable 'conf_free' modifier le fichier  include/config_local.inc.php.
 En ajoutant la variable:
 conf['free_mail_173'] = off,on,on ;
 
";
		echo '
		-------- MESSAGE -----------------
		';
		print_r($message) ;	
		echo '
		--------HEADERS -----------------
		';
			print_r($headers) ;
		echo '
		--------CONTENT -----------------
		';
			print_r($content) ;
		echo '
' ; exit(); } else { echo $message; $ret=false; } //================================================================== if ($ret) { return $ret; }else{ $next_day = time() + (2 * 24 * 60 * 60); echo "Attention defaut d'envoie de mails " .$ret. "\n" ; $query = ' UPDATE '.FREE_MAIL_TABLE.' SET date_quarantaine="'. $next_day.'" ;'; pwg_query($query); $reste=($next_day-time()) /3600 ; exit(); } }else{ /* echo '
';
print_r ($headers);
print_r($content );
echo '
'; */ if ($reste >= 1) { echo '
';
 	print "Attention il ya eu un défaut d'envoie de mails encore 
	 	". (int ) $reste . "H
		avant le déblocage." ;
		}
		else{echo '
';
		 	print "Il faut attendre au minimun 20 sec avent un deuxième envoie encore avant le déblocage."   ;
			}
			
	  	echo '
'; echo ' RETOUR '; echo "Dernier message :".$message. " reçu."; exit(); echo 'ARGS: '; print_r($args) ; echo ' ---------------------------------------------------- MAIL TO: ' ; print_r($mailto) ; echo ' ---------------------------------------------------- HEADER ' ; print_r($headers) ; echo ' ---------------------------------------------------- content ' ; print_r($content) ; echo '
' ; } } //================================================================================= function Get_colonne_de($table) { $columns_of = array(); $query = 'DESC '.$table.';'; $result = mysql_query($query); $columns_of[$table] = array(); while ($row = mysql_fetch_row($result)) { array_push($columns_of[$table], $row[0]); } return $columns_of; } function Get_données() { global $conf, $user; $nb = Get_colonne_de(FREE_MAIL_TABLE); $table=$nb[FREE_MAIL_TABLE]; //================================================================================ if (!in_array( "nb_mails",$table)) { $query = "ALTER TABLE `".FREE_MAIL_TABLE."` ADD `nb_mails` INT NOT NULL default '0' "; pwg_query($query); } if (!in_array( "date_mail",$table)) { $query = "ALTER TABLE `".FREE_MAIL_TABLE."` ADD `date_mail` INT NOT NULL default '0' "; pwg_query($query); } if (!in_array( "quarantaine",$table)) { $query = "ALTER TABLE `".FREE_MAIL_TABLE."` ADD `quarantaine` bool NOT NULL "; pwg_query($query); } if (!in_array( "message",$table)) { $query = "ALTER TABLE `".FREE_MAIL_TABLE."` ADD `message` TEXT "; pwg_query($query); } $query = " SELECT COUNT(*) FROM ".FREE_MAIL_TABLE." ;"; //============================================================================== list($count) = mysql_fetch_row(pwg_query($query)); if ($count == 0) { $next_day = time() ; $date_quarantaine=''; $q = ' INSERT INTO '.FREE_MAIL_TABLE.' (id,nb_mails, date_quarantaine,date_mail, quarantaine,message) VALUES (1,0,"'. $next_day.'","'. $next_day.'" ,false,".") ;'; pwg_query($q); } $query = " SELECT * FROM ".FREE_MAIL_TABLE." ;"; $data = mysql_fetch_array(pwg_query($query)); // limite 2000 par semaine. $infos->nb_mails = $data['nb_mails']; $infos->next_day = $data['date_quarantaine']; $infos->reste =(float) ( $data['date_quarantaine'] - time())/3600 ; $infos->quarantaine = $data['quarantaine']; $infos->message = $data['message']; //============================================================ $admins = array(); $query = ' select U.'.$conf['user_fields']['username'].' as username, U.'.$conf['user_fields']['email'].' as mail_address from '.USERS_TABLE.' as U, '.USER_INFOS_TABLE.' as I where I.user_id = U.'.$conf['user_fields']['id'].' and I.status in (\'webmaster\', \'admin\') and I.adviser = \'false\' and '.$conf['user_fields']['email'].' is not null and I.user_id <> '.$user['id'].' order by username '; $datas = pwg_query($query); if (!empty($datas)) { while ($admin = mysql_fetch_array($datas)) { if (!empty($admin['mail_address'])) { // array_push($admins, format_email($admin['username'], $admin['mail_address'])); $temp= $admin['mail_address'] ; array_push($admins,$temp); } } } if (count($admins) > 0) { } $infos->admins = $admins ; return $infos; //======================================================================== echo '
';
echo FREE_MAIL_TABLE;
echo '
----------- ADMINS ----------------------------------------
';	
print_r ($admins);
echo '
-------------------------------------------------------------------
';	
print_r ($infos);
echo '
'; } function corrige_headers($Carbonne,$headers) { global $conf_statistics,$conf_mail; $mailto=""; /* if ($conf_free_mail[1] == 'on') { $mailto=$conf_mail['email_webmaster']; } */ $splitter="|".$Carbonne.":(.*)\n|U"; preg_match_all($splitter,$headers, $out,PREG_PATTERN_ORDER); $val=array(); $match=array("<",">"); $string=array("","") ; foreach($out as $messages) { $val[]= $messages[0] ; } $val[1]= str_replace( $match,$string,$val[0] ) ; $src=$val[0]; $splitter="|\"(.*)\"|U"; preg_match_all($splitter,$val[1], $out,PREG_PATTERN_ORDER); $string=array(); $string = array_fill( 0, count($out), ''); $dest = str_replace($out[0], $string, $val[1]) ; /* if ($conf_free_mail[1] == 'on') $dest=str_replace($mailto.',', '', $dest) ; $dest=str_replace($mailto, '', $dest) ; } */ $headers = str_replace( $src,$dest, $headers) ; return $headers; //============================================================================================================== } ?>