Entetes de mail dans INBOX

\n"; $nb_mess=imap_num_msg($mbox); echo "Nombre de messages : ".$nb_mess."
"; /* Pour tous les messages */ for($cpt=1;$cpt<=$nb_mess;$cpt++) { $infos=imap_headerinfo($mbox, $cpt); $from=$infos->from; $expediteur=$from[0]->mailbox."@".$from[0]->host; $recent=$infos->Recent; /* Si l'expediteur est un envoi de sms et que le message est non lu */ if($expediteur=="webmaster@leSMS.com"/* and $recent=='N'*/) { $sujet=imap_utf8($infos->subject); echo $cpt." : ".$sujet."
"; $test_sujet=substr($sujet,0,23); /* Si le sujet est la reception d'un SMS */ if($test_sujet=="Nouveau message SMS du") { /* Recup du numero de telephone */ $numero=sscanf($sujet, "Nouveau message SMS du %10s"); //print_r($numero); /* Traitement du corps du message - Recup de la reponse */ $texte_mail=imap_fetchbody($mbox, $cpt, 1); $reponse_tab=recup_reponse($texte_mail); /* Reponse de la forme : (Oui/non) (Tournoi/Match) Club */ if(isset($reponse_tab)) traitement_reponse($reponse_tab, $numero[0]); } } /* Rejeter le mail - Spam - Le supprimer ? */ else { //echo "mail rejeté - mauvais expéditeur."; /* imap_delete($mbox, $cpt); */ echo "mail rejeté"; } } imap_close($mbox); /*****************************************************************************/ /* Fonctions ***************************************************************/ function recup_reponse($texte_email) { $texte_email=utf8_encode($texte_email); $ligne_tab=array(); /* Divise la chaine en ligne */ $ligne_tab=explode("\r\n",$texte_email); if(strcasecmp($ligne_tab[0], "Bonjour,")==0 and strcasecmp($ligne_tab[6], "L'équipe de leSMS.com")==0 and strcasecmp($ligne_tab[4],"Nous vous souhaitons bonne réception de ce message.")==0) { echo "mail ok !
"; /* Controle de la phrase contenant le message et le numero de telephone */ $test=substr($ligne_tab[2],0,44); if(strcasecmp($test, "Vous venez de recevoir un nouveau message du")==0) { echo "message ok !
"; sscanf($ligne_tab[2], "Vous venez de recevoir un nouveau message du %10s : \"%[^$]s\"", $numero, $message); $message=str_replace('"', '', $message); $message=strtolower($message); } else { echo "message ko !
"; unset($reponse); } } else { echo "mail rejeté"; unset($reponse); } return $message; } /************************************************************************************/ /* Traitement des infos - Pour chaque message */ /* format message SMS : $reponse ville (pour tournoi) */ /* et copier le contenu du message dans les dispos */ /************************************************************************************/ function traitement_reponse($message, $numero) { include("mysql_compat.php"); include ("conf.php"); $rep_sms=""; echo $message."
"; if($message!="") { $type_convoc=0; /* Ajoute les espaces au numero de telephone pour comparaison avec la BDD */ $groupe1=substr($numero, 0, 2); $groupe2=substr($numero, 2, 2); $groupe3=substr($numero, 4, 2); $groupe4=substr($numero, 6, 2); $groupe5=substr($numero, 8, 2); $numero="$groupe1 $groupe2 $groupe3 $groupe4 $groupe5"; /* Controle de l'existance du joueur sur le site Recup de l'id du joueur */ $requete="SELECT id_joueur FROM telephone WHERE numero='$numero' ORDER BY id_joueur ASC"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe=mysqli_num_rows($reponse); if($existe>0) { echo "joueur existe sur le site !!!!
"; $joueur=mysqli_fetch_object($reponse); $id_joueur=$joueur->id_joueur; /* Contenu du message */ if(strpos($message, "oui") !== false) { $rep_sms="oui"; echo "oui
"; } else if(strpos($message, "non") !== false) { $rep_sms="non"; echo "non
"; } else { echo "Inscription au tournoi - appréciation du message par le juge arbitre
"; $rep_sms="appreciation"; } /* Controle du type de la convocation */ $type_convoc=recherche_convoc_dispo($id_joueur, $message); /**************************/ //$type_convoc=0; //TEST /**************************/ if(count($type_convoc)==2) { echo "type convoc : $type_convoc[0]
"; echo "id_tournoi/resa/dispo : $type_convoc[1]
"; /* Refus inscription / convocation */ if($rep_sms=="non" and $type_convoc[0] != "dispo") { /* Convoc tournoi */ if($type_convoc[0]=="tournoi") { $id_tournoi=$type_convoc[1]; $requete="UPDATE appels_sortants SET reponse='non' WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); } /* Convoc match */ else if($type_convoc[0]=="match") { $id_reservation=$type_convoc[1]; $requete="UPDATE participant SET info='refus', prevenu=NOW() WHERE id_reservation='$id_reservation' AND id_joueur='$id_joueur' AND type='Sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); } } else if($rep_sms=="oui" and $type_convoc[0] != "dispo") { /* Convoc tournoi */ if($type_convoc[0]=="tournoi") { $id_tournoi=$type_convoc[1]; /* Recherche de la categorie */ $requete="SELECT id_categorie FROM appels_sortants WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $cat=mysqli_fetch_object($reponse); $id_categorie=$cat->id_categorie; $requete="UPDATE appels_sortants SET reponse='oui', prevenu=NOW() WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); /* Inscription du joueur au tournoi */ /* Si pas de categorie - Ne tient pas compte des surclassements */ if($id_categorie==0) { $id_categorie=cat_joueur($id_joueur, $id_tournoi); } $requete="SELECT num_tel FROM appels_sortants WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $tel=mysqli_fetch_object($reponse); $num_tel=$tel->num_tel; if($id_categorie != 0) { /* Controle si l'inscription n'a pas déja été effectué */ $requete="SELECT * FROM inscription_tournoi WHERE id_joueur='$id_joueur' AND id_categorie='$id_categorie' AND id_tournoi='$id_tournoi'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe=mysqli_num_rows($reponse); /* Si l'inscription n'existe pas, on la crée et on confirme */ if($existe==0) { $requete="INSERT INTO inscription_tournoi(id_joueur,id_tournoi,id_categorie, date_inscription, travaille, inscripteur, telephone) VALUES('$id_joueur','$id_tournoi','$id_categorie', CURDATE(), 'nsp','sms','$num_tel')"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); envoi_mail($id_joueur, $id_tournoi); } } } /* Convoc match */ else if($type_convoc[0]=="match" and $type_convoc[0] != "dispo") { $id_reservation=$type_convoc[1]; $requete="UPDATE participant SET info='Ok', prevenu=NOW() WHERE id_reservation='$id_reservation' AND id_joueur='$id_joueur' AND type='Sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); } } else if($rep_sms=="appreciation" and $type_convoc[0] != "dispo") { /* Convoc tournoi */ if($type_convoc[0]=="tournoi") { $id_tournoi=$type_convoc[1]; /* Recherche de la categorie */ $requete="SELECT id_categorie FROM appels_sortants WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $cat=mysqli_fetch_object($reponse); $id_categorie=$cat->id_categorie; $requete="UPDATE appels_sortants SET reponse='oui', prevenu=NOW() WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); /* Inscription du joueur au tournoi */ /* Si pas de categorie - Ne tient pas compte des surclassements */ if($id_categorie==0) { $id_categorie=cat_joueur($id_joueur); } $requete="SELECT num_tel FROM appels_sortants WHERE id_tournoi='$id_tournoi' AND id_joueur='$id_joueur' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $tel=mysqli_fetch_object($reponse); $num_tel=$tel->num_tel; /* Controle si l'inscription n'a pas déja été effectué */ $requete="SELECT * FROM inscription_tournoi WHERE id_joueur='$id_joueur' AND id_categorie='$id_categorie' AND id_tournoi='$id_tournoi'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe=mysqli_num_rows($reponse); /* Comme le message SMS est ambigu, on inscrit le joueur et on laisse */ /* le soin au juge arbitre de valider ou d'annuler l'inscription */ /* en lisant le message dans les commentaires */ if($existe==0) { $commentaire="Contenu message SMS : ".$message; $requete="INSERT INTO inscription_tournoi(id_joueur,id_tournoi,id_categorie, date_inscription, travaille, inscripteur, telephone, commentaires) VALUES('$id_joueur','$id_tournoi','$id_categorie', CURDATE(), 'nsp','sms','$num_tel', '$commentaire')"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); } } } /* Dispo */ else if($type_convoc[0]=="dispo") { echo "DISPO !!!!!!!!
"; $id_dispo=$type_convoc[1]; $requete="UPDATE dispo_champ SET dispo='$message', reponse='oui', resultat_appel='prevenu' WHERE id_dispo='$id_dispo'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); } } } /* joueur inconnu du site */ else { echo "Joueur inconnu sur le site
"; } } echo "\n\n"; } /*****************************************************************************************/ /* Recherche une catégorie d'inscription pour le joueur et dans un tournoi */ /*****************************************************************************************/ function cat_joueur($id_joueur, $id_tournoi) { include("mysql_compat.php"); include ("conf.php"); $db_connection=mysql_connect($db_host,$db_user,$password); $id_cat=0; /* Infos joueurs */ $requete="SELECT annee, sexe FROM joueur WHERE id_joueur='$id_joueur'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $joueur=mysqli_fetch_object($reponse); $age=date("Y")-$joueur->annee; /* Categories Tournoi */ $requete="SELECT c.id_categorie, c.age_min, c.age_max FROM categorie c LEFT JOIN categories_par_tournoi ct ON ct.id_categorie=c.id_categorie WHERE c.sexe='$joueur->sexe' AND ct.id_tournoi='$id_tournoi' AND c.type='simple'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); while($cat=mysqli_fetch_object($reponse)) { if($cat->age_max==0) { $age_max=100; } else { $age_max=$cat->age_max; } if($age<$age_max and $age>=$cat->age_min and $id_cat==0) { $id_cat=$cat->id_categorie; } } return $id_cat; } /*****************************************************************************************/ /* Recherche le type de message (Disponibilités, convoc ou prochain match */ /*****************************************************************************************/ function recherche_convoc_dispo($id_joueur, $message) { include("mysql_compat.php"); include ("conf.php"); $db_connection=mysql_connect($db_host,$db_user,$password); $rep=array(); $clubs=array(); // Disponibilites ? $now=date("Y-m-d", time()); $requete="SELECT dc.id_dispo FROM dispo_champ dc, dates_champ d "; $requete.=" WHERE d.id_date=dc.id_date AND dc.id_joueur='$id_joueur' AND dc.resultat_appel='en_attente' AND dc.reponse='pas_de_reponse' AND dc.type_demande='sms' AND dc.a_appeler='non' AND d.date > '$now'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); echo $requete."
"; $existe_dispo=mysqli_num_rows($reponse); if($existe_dispo>0) { echo "dispo\n"; $rep[0]="dispo"; $dispo=mysqli_fetch_object($reponse); $rep[1]=$dispo->id_dispo; } // Tournoi et prochain match tournoi else { $requete="SELECT id_club, LCASE(ville) AS ville FROM club"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); while($club=mysqli_fetch_object($reponse)) { if(strpos($message, $club->ville) !== false) { array_push($clubs, $club->id_club); } } echo "nombre clubs : ".count($clubs)."
"; if(count($clubs)==0) { /* Recherche d'une convocation à un tournoi */ $requete="SELECT t.id_tournoi FROM tournoi t LEFT JOIN appels_sortants a ON t.id_tournoi=a.id_tournoi WHERE a.id_joueur='$id_joueur' AND t.date_cloture >= CURDATE() AND a.reponse='pas_de_reponse' AND a.type='sms' "; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe_tournoi=mysqli_num_rows($reponse); if($existe_tournoi>0) { $rep[0]="tournoi"; $tournoi=mysqli_fetch_object($reponse); $rep[1]=$tournoi->id_tournoi; } /* Recherche convocation match */ else { /* Recherche du joueur à partir de son numero de portable */ $requete="SELECT p.id_reservation FROM participant p WHERE p.id_joueur='$id_joueur' AND p.prevenu<>NULL AND p.a_prevenir='Sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe_match=mysqli_num_rows($reponse); if($existe_match>0) { $rep[0]="match"; $tournoi=mysqli_fetch_object($reponse); $rep[1]=$tournoi->id_reservation; } } } else if(count($clubs)==1) { $id_club=$clubs[0]; echo "club : $id_club
"; $requete="SELECT t.id_tournoi FROM tournoi t LEFT JOIN appels_sortants a ON a.id_tournoi=t.id_tournoi WHERE t.id_club='$id_club' AND t.saison= YEAR(CURDATE()) AND a.id_joueur='$id_joueur' AND a.reponse='pas_de_reponse' AND t.date_cloture >= CURDATE() ORDER BY t.debut ASC"; echo $requete."
"; $reponse_tournoi=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe_tournoi=mysqli_num_rows($reponse_tournoi); if($existe_tournoi>0) { $rep[0]="tournoi"; $tournoi=mysqli_fetch_object($reponse_tournoi); $rep[1]=$tournoi->id_tournoi; } else { /* Recherche d'une convocation à un match */ $requete="SELECT p.id_reservation FROM participant p WHERE p.id_joueur='$id_joueur' AND p.prevenu<>NULL AND p.a_prevenir='Sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe_match=mysqli_num_rows($reponse); if($existe_match>0) { $rep[0]="match"; $tournoi=mysqli_fetch_object($reponse); $rep[1]=$tournoi->id_reservation; } } } else if(count($clubs)>1) { $requete="SELECT fin, t.id_tournoi FROM tournoi t LEFT JOIN appels_sortants a ON a.id_tournoi=t.id_tournoi WHERE "; for($i=0;$i"); $existe=mysqli_num_rows($reponse_tournoi); if($existe>0) { $rep[0]="tournoi"; $tournoi=mysqli_fetch_object($reponse); $rep[1]=$tournoi->id_tournoi; } else { /* Recherche d'une convocation à un match */ $requete="SELECT p.id_reservation FROM participant p WHERE p.id_joueur='$id_joueur' AND p.prevenu<>NULL AND p.a_prevenir='Sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $existe_match=mysqli_num_rows($reponse); if($existe_match>0) { $rep[0]="match"; $tournoi=mysqli_fetch_object($reponse); $rep[1]=$tournoi->id_reservation; } } } } return $rep; } function envoi_mail($id_joueur, $id_tournoi) { include("mysql_compat.php"); include ("conf.php"); $db_connection=mysql_connect($db_host,$db_user,$password); $requete="SELECT nom, prenom, e_mail FROM joueur wHERE id_joueur='$id_joueur'"; $reponse=mysqli_query($db_connection, $requete); $joueur=mysqli_fetch_array($reponse); $requete="SELECT * FROM appels_sortants WHERE id_joueur='$id_joueur' AND id_tournoi='$id_tournoi'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $convoc=mysqli_fetch_object($reponse); $test_portable=explode(" ", $convoc->num_tel); if(strcmp($test_portable[0],"06")==0) { $requete="SELECT nom, prenom FROM joueur WHERE id_joueur='$id_joueur'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $joueur=mysqli_fetch_object($reponse); $requete="SELECT nom, id_club, id_jugearbitre FROM tournoi WHERE id_tournoi='$id_tournoi'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $tournoi=mysqli_fetch_object($reponse); $requete="SELECT nom FROM juge_arbitre WHERE id_ja='$tournoi->id_jugearbitre'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $ja=mysqli_fetch_object($reponse); $requete="SELECT nom FROM categorie WHERE id_categorie='$convoc->id_categorie'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $cat=mysqli_fetch_object($reponse); $texte="Bonjour $joueur->prenom $joueur->nom."; $texte.="Ce SMS confirme votre inscription au tournoi $tournoi->nom ds la cat $cat->nom."; $texte.="Le JA $ja->nom"; $num_tel=$convoc->num_tel; if(strlen($num_tel)==14) { $num_tel=str_replace(" ","",$convoc->num_tel); } if(strlen($texte)<=160) { envoi_sms($num_tel, $texte); } } else if($['']!="") { $requete="SELECT id_club, nom FROM tournoi WHERE id_tournoi='$id_tournoi'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $tournoi=mysqli_fetch_object($reponse); $requete="SELECT nom, e_mail FROM club WHERE id_club='$tournoi->id_club'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $club=mysqli_fetch_object($reponse); $requete="SELECT id_categorie FROM appels_sortants WHERE id_joueur='$id_joueur' AND id_tournoi='$id_tournoi' AND type='sms'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $cat=mysqli_fetch_object($reponse); $requete="SELECT nom FROM categorie WHERE id_categorie='$cat->id_categorie'"; $reponse=mysqli_query($db_connection, $requete) or die ("Erreur no".mysqli_errno($db_connection)()." : ".mysqli_error($db_connection)()."
"); $cat=mysqli_fetch_object($reponse); $text="Cet email vous confirme que votre inscription via SMS dans la categorie $cat->nom a bien ete prise en compte par les organisateurs du tournoi $tournoi->nom du club $club->nom.\n\n L'inscription sera validee par le juge arbitre lorsque l'inscription sera reglee et apres presentation du certificat medical.\n\n Les organisateurs du tournoi. "; $joueur_email=$['']; $club_email=$club->e_mail; $sujet="Confirmation de l'inscription via SMS au tournoi $tournoi->nom du club $club->nom"; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; // Additional headers $headers .= "To: $joueur_email\r\n"; $headers .= "From: tennis@airtria.fr\r\n"; if($club_email != "") { $headers .="Cc: $club_email\r\n"; } mail($joueur_email, $sujet, $text, $headers); } } ?>