Votre question

PHP - Envoi de Mail

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
7 Juin 2011 15:08:13

Bonjour à tous,

je réalise actuellement une application qui permet, entre autre, de lister des informations sur un client (après l'avoir choisi par le biais d'une liste déroulant), toutes les infos s'affichent très bien avec mon script PHP. Cependant, je souhaiterais envoyer toutes ces infos par mail, j'ai trouvé des information là dessus mais ça se résume à :

$destinataire="tartanpion@gmail.com";
$sujet="Sujet";
$message=test de message;

mail($destinataire, $sujet, $message);

Cette méthode n'est pas très adapté pour moi car je souhaiterais mettre dans mon message le contenu de mon script PHP, avec si possible la même mise en forme (je sais pas si on peut parler de newsletter). Ci-dessous mon script PHP (c'est peut être pas très bien codé mais bon) :

  1. <?php
  2.  
  3. //***********INITIALISATION DES VARIABLES**********//
  4. $host = "localhost";
  5. $user = "root";
  6. $password = "";
  7. $bdd = "application";
  8.  
  9.  
  10. mysql_connect($host, $user, $password) or die ("impossible de se connecter au serveur" );
  11. mysql_select_db($bdd) or die ("impossible de se connecter a la base de donnees" );
  12.  
  13. $compteurc = 1;
  14. $compteuril = 1;
  15. $compteurvl = 1;
  16. $compteurim = 1;
  17. $compteurvm = 1;
  18. $mef = "A";
  19. //******** FIN INITIALISATION***************//
  20.  
  21.  
  22. echo '<p align="center"><span style="font-variant: small-caps;"><font size=6>Informations Client</span></font></p><br>';
  23. echo '<form method="post" action="traitementclient.php">';
  24. echo '<p align="center"><select onchange=submit() name="libelle" id="libelle">';
  25. $resu=mysql_query("SELECT libelle FROM ouapi_sites" );
  26. echo '<option value="">---Choisir un client---</option>';
  27. while ($liste = mysql_fetch_array($resu))
  28. {
  29. echo '<option value="', $liste['libelle'], '">', $liste['libelle'], '</option>';
  30. }
  31. echo '</select></p>';
  32.  
  33. $libelle = ($_POST['libelle']);
  34.  
  35.  
  36.  
  37. //*****test qu'on a bien choisit un client par le biais de la liste déroulante*****
  38.  
  39. if ($libelle != NULL)
  40. {
  41.  
  42. //*******************************************************//
  43. //JE VEUX ENVOYER PAR MAIL TOUT CE QUI SE TROUVE APRES CA
  44. //*******************************************************//
  45.  
  46. // ******************PARTIE CONTRATS*****************//
  47. $requete = "SELECT ouapi_contrat.date_debut, ouapi_contrat.duree_mois, ouapi_contrat.reference, ouapi_co_type.libelle, ouapi_sites.libelle, ouapi_entreprise.raison_sociale, ouapi_contrat.agence_id, ouapi_contrat.id FROM ouapi_contrat, ouapi_co_type, ouapi_sites, ouapi_entreprise WHERE ouapi_contrat.agence_id = ouapi_sites.id AND ouapi_contrat.type_id = ouapi_co_type.id AND ouapi_entreprise.id = ouapi_contrat.entreprise_id AND ouapi_sites.libelle ='$libelle' ORDER BY ouapi_contrat.date_debut";
  48. $reponse = mysql_query ($requete);
  49.  
  50. echo "<br>";
  51.  
  52. while ($row = mysql_fetch_array($reponse))
  53. {
  54. $datedeb = $row[0];
  55. $duree = $row[1];
  56. $ref = $row[2];
  57. $type = $row[3];
  58. $site = $row[4];
  59. $entr = $row[5];
  60. $siteid = $row[6];
  61. $contid = $row[7];
  62.  
  63. if ($compteurc == 1)
  64. {
  65. echo "<p align=\"center\"><A HREF=\"<a href="http://192.168.66.110/ouapi1.0/index.php?page=accueil.php&agence_id=" rel="nofollow" target="_blank">http://192.168.66.110/ouapi1.0/index.php?page=accueil.p...</a>$siteid&rubrique=contr\" TITLE='Voir les contrats de cette entreprise'><FONT SIZE=5>Contrats de ".$libelle."</FONT></A><BR><BR></p>";
  66. }
  67.  
  68. // Conversion de la date de début en unix timestamp
  69. list($y,$m,$d) = explode('-', $datedeb);
  70. $utdb = mktime(12,0,0,$m,$d,$y);
  71.  
  72. // Calcul de la fin du contrat:
  73. $utdf = strtotime("+".$duree." months", $utdb);
  74.  
  75. // On prend la date du jour à 12h, pour être dans le même contexte horaire que le contrat:
  76. $now = mktime(12, 0, 0, date('m'), date('d'), date('Y'));
  77.  
  78. //Date de fin avec le bon format
  79. $datefin = date('d-m-Y', $utdf);
  80.  
  81. echo "<p align='center'>";
  82. echo "<A HREF=\"<a href="http://192.168.66.110/ouapi1.0/index.php?page=visu_fiche.php&type=contr&id=" rel="nofollow" target="_blank">http://192.168.66.110/ouapi1.0/index.php?page=visu_fich...</a>$contid&action=visu\" TITLE='Voir la fiche du contrat'>".$ref."</A><BR>";
  83. echo $entr." > ";
  84. echo $type."</A><BR>";
  85. echo "Date de fin : ".$datefin."<BR>";
  86. echo "</p>";
  87. $compteurc ++;
  88. }
  89.  
  90. //****************FIN PARTIE CONTRAT***************//
  91. echo "<br><br><br>";
  92. //****************PARTIE LOGICIEL******************//
  93. //***************infos logiciels**********************//
  94. $requete2 = "SELECT DISTINCT infolog.logiciel, infolog.link, infolog.description, infolog.version FROM ouapi_sites, ouapi_software, infolog WHERE ouapi_sites.id=ouapi_software.agence_id AND ouapi_software.nom=infolog.logiciel AND ouapi_sites.libelle='$libelle' ORDER BY ouapi_software.nom";
  95. $resultat2 = mysql_query ($requete2);
  96. echo '<p align="center"><span style="font-variant: small-caps;"><font size=5>Informations Logiciels</span></font></p>';
  97. while ($row2 = mysql_fetch_array($resultat2))
  98. {
  99. $ilogl = $row2[0];
  100. $ilinkl = $row2[1];
  101. $idescl = $row2[2];
  102. $iversl = $row2[3];
  103. if ($mef != $ilogl)
  104. {
  105. echo "<dl><p align=center><B>"."<A HREF='$ilinkl'><Font size=4>".$ilogl." ".$iversl."</A></FONT></B></p></dl>";
  106. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  107. echo "<dt>".$idescl."</dt></p></div><BR>";
  108. $mef = $ilogl;
  109. }
  110. else
  111. {
  112. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  113. echo "<dt>".$idescl."</dt></p></div><BR>";
  114. }
  115. $compteuril ++;
  116. }
  117. if ($compteuril == 1)
  118. {
  119. echo "<p align='center'><font size=3><I>Aucune information concernant les logiciels chez ".$libelle." !</I></FONT></P>";
  120. }
  121.  
  122. //***************fin info logiciel******************//
  123. echo "<br><br>";
  124. //************vulnérabilités logiciel********************//
  125.  
  126. $requete3 = "SELECT title, link, description FROM document";
  127. $resultat3 = mysql_query ($requete3) or die (mysql_error());
  128. echo '<p align="center"><span style="font-variant: small-caps;"><font size=5>Vulnérabilités Logiciels</span></font></p>';
  129. while ($row3 = mysql_fetch_array ($resultat3))
  130. {
  131. $vtitlel = $row3[0];
  132. $vlinkl = $row3[1];
  133. $vdescl = $row3[2];
  134.  
  135. $requete32 = "SELECT DISTINCT ouapi_software.nom, ouapi_software.dern_version_num FROM ouapi_software, ouapi_sites WHERE ouapi_sites.id=ouapi_software.agence_id AND ouapi_sites.libelle='$libelle' ORDER BY ouapi_software.nom";
  136. $resultat32 = mysql_query ($requete32) or die (mysql_error());
  137. while ($row32 = mysql_fetch_array ($resultat32))
  138. {
  139. $noml = $row32[0];
  140. $versl = $row32[1];
  141. $regl = "#".$noml."#i";
  142. if (preg_match($regl, $vtitlel))
  143. {
  144. if ($mef != $noml)
  145. {
  146. echo "<dl><p align=center><B>"."<A HREF='$vlinkl'><Font size=4>".$noml." ".$versl."</A></FONT></B></p></dl>";
  147. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  148. echo "<dt>".$vdescl."</dt></p></div><BR>";
  149. $mef = $noml;
  150. }
  151. else
  152. {
  153. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  154. echo "<dt>".$vdescl."</dt></p></div><BR>";
  155. }
  156. $compteurvl = $compteurvl + 1;
  157. }
  158. }
  159. }
  160. if ($compteurvl == 1)
  161. {
  162. echo "<p align='center'><font size=3><I>Aucune vulnérabilité concernant le logiciel chez ".$libelle." !</I></FONT></P>";
  163. }
  164. //*************fin vulnérabilité logiciel************//
  165. echo "<br><br>";
  166.  
  167. //************PARTIE MATERIEL*****************//
  168. //*************info matériel******************//
  169. $requete4 = "SELECT DISTINCT infolog.logiciel, infolog.link, infolog.description, infolog.version FROM infolog, ouapi_ha_modele, ouapi_sites, ouapi_hardware WHERE ouapi_sites.id = ouapi_hardware.agence_id AND ouapi_hardware.modele_id = ouapi_ha_modele.id AND ouapi_sites.libelle = '$libelle' AND infolog.logiciel = ouapi_ha_modele.libelle ORDER BY infolog.logiciel";
  170. $resultat4 = mysql_query ($requete4);
  171. echo '<p align="center"><span style="font-variant: small-caps;"><font size=5>Informations Matériels</span></font></p>';
  172. while ($row4 = mysql_fetch_array($resultat4))
  173. {
  174. $ilogm = $row4[0];
  175. $ilinkm = $row4[1];
  176. $idescm = $row4[2];
  177. $iversm = $row4[3];
  178. if ($mef != $ilogm)
  179. {
  180. echo "<dl><p align=center><B>"."<A HREF='$ilinkm'><Font size=4>".$ilogm." ".$iversm."</A></FONT></B></p></dl>";
  181. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  182. echo "<dt>".$idescm."</dt></p></div><BR>";
  183. $mef = $ilogm;
  184. }
  185. else
  186. {
  187. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  188. echo "<dt>".$idescm."</dt></p></div><BR>";
  189. }
  190. $compteurim ++;
  191. }
  192. if ($compteurim == 1)
  193. {
  194. echo "<p align='center'><font size=3><I>Aucune information concernant le matériel chez ".$libelle." !</I></FONT></P>";
  195. }
  196. //***************fin info matériel******************//
  197. echo "<br><br>";
  198. //**********vulnérabilités matériel********************//
  199. $requete5 = "SELECT title, link, description FROM document";
  200. $resultat5 = mysql_query ($requete5) or die (mysql_error());
  201. echo '<p align="center"><span style="font-variant: small-caps;"><font size=5>Vulnérabilités Matériels</span></font></p>';
  202. while ($row5 = mysql_fetch_array ($resultat5))
  203. {
  204. $vtitlem = $row5[0];
  205. $vlinkm = $row5[1];
  206. $vdescm = $row5[2];
  207.  
  208. $requete52 = "SELECT DISTINCT ouapi_ha_modele.libelle FROM ouapi_ha_modele, ouapi_sites, ouapi_hardware WHERE ouapi_sites.id = ouapi_hardware.agence_id AND ouapi_hardware.modele_id = ouapi_ha_modele.id AND ouapi_sites.libelle = '$libelle'";
  209. $resultat52 = mysql_query ($requete52) or die (mysql_error());
  210. while ($row52 = mysql_fetch_array ($resultat52))
  211. {
  212. $nomm = $row52[0];
  213. $versm = $row52[1];
  214. $regm = "#".$nomm."#i";
  215. if (preg_match($regm, $vtitlem))
  216. {
  217. if ($mef != $nomm)
  218. {
  219. echo "<dl><p align=center><B>"."<A HREF='$vlinkm'><Font size=4>".$nomm." ".$versm."</A></FONT></B></p></dl>";
  220. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  221. echo "<dt>".$vdescm."</dt></p></div><BR>";
  222. $mef = $nomm;
  223. }
  224. else
  225. {
  226. echo "<div style='width:50%;margin:auto;'><p style='text-align:justify;'>";
  227. echo "<dt>".$vdescm."</dt></p></div><BR>";
  228. }
  229. $compteurvm = $compteurvm + 1;
  230. }
  231. }
  232. }
  233. if ($compteurvm == 1)
  234. {
  235. echo "<p align='center'><font size=3><I>Aucune vulnérabilité concernant le matériel chez ".$libelle." !</I></FONT></P>";
  236. }
  237. }
  238.  
  239. ?>



Merci d'avance pour votre aide

Autres pages sur : php envoi mail

a c 145 L Programmation
7 Juin 2011 15:53:06

Au lieu de faire un echo, crée une variable ($html_body) et utilise une classe d'envoi de mail html. Par exemple celle-ci
m
0
l
7 Juin 2011 15:57:05

ok merci je vais regarder ça par contre mon application tourne sur xampp et je galère un peu pour configurer (dans le fichier php.ini ??) l'envoi de mail donc si tu as des infos là dessus je suis preneur.

merci d'avance
m
0
l
Contenus similaires
a c 145 L Programmation
7 Juin 2011 16:55:00

Pour l'utilisation du mail avec xamp, je crois que tu es obligé de passer par le SMTP de ton FAI.
Normalement, c'est bien expliqué dans la configuration de xamp (php.ini en effet)
m
0
l
7 Juin 2011 17:35:32

ok merci je vais plutôt essayer de mettre en place un serveur smtp sur ma machine
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS