Advertisement
rAthus

Non-spam PHP mail sender

Jun 4th, 2013
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.72 KB | None | 0 0
  1. # Fonction de protection des données entrantes #
  2. function protect($code) {
  3.     return stripslashes(nl2br(htmlspecialchars(utf8_decode($code),ENT_QUOTES)));
  4. }
  5.  
  6. # Récupération des infos #
  7. $civilite = protect($_POST['civilite']);
  8. $nom = protect($_POST['nom']);
  9. $prenom = protect($_POST['prenom']);
  10. $email = protect($_POST['email']);
  11. $adresse = protect($_POST['adresse']);
  12. $cpostal = protect($_POST['cpostal']);
  13. $ville = protect($_POST['ville']);
  14. $telephone = protect($_POST['telephone']);
  15. $commentaire = protect($_POST['commentaire']);
  16.  
  17. # Déclaration des variables #
  18. $mail = 'destinataire@example.com'; // Déclaration de l'adresse de destination.
  19. $nom_expediteur = 'Mon nom'; // Déclaration du nom de l'expéditeur.
  20. $adresse_expediteur = 'expediteur@example.com'; // Déclaration de l'adresse de l'expéditeur qui sera aussi l'adresse de réponse. Eviter les "noreply".
  21.  
  22. # Définition du sujet #
  23. $sujet = "Sujet du message";
  24.  
  25. # On filtre les serveurs qui rencontrent des bogues #
  26. if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail))
  27.     $passage_ligne = "\r\n";
  28. else
  29.     $passage_ligne = "\n";
  30.  
  31. # Déclaration des messages au format texte #
  32. $message_txt = "Un message vient d'arriver par le formulaire de contact :".$passage_ligne.$passage_ligne;
  33. $message_txt .= "Identité :".$passage_ligne." ".$nom." ".$prenom."".$passage_ligne.$passage_ligne;
  34. $message_txt .= "Email :".$passage_ligne."".$email."".$passage_ligne.$passage_ligne;
  35. $message_txt .= "Téléphone :".$passage_ligne."".$telephone."".$passage_ligne.$passage_ligne;
  36. $message_txt .= "Adresse :".$passage_ligne."".$adresse." ".$cpostal." ".$ville."".$passage_ligne.$passage_ligne;
  37. $message_txt .= "Message :".$passage_ligne."".$commentaire."".$passage_ligne;
  38.  
  39. # Déclaration des messages au format HTML #
  40. $message_html = "<html><head><meta http-equiv='Content-Type' content='text/html; charset=UTF-8' /></head><body>"; // Obligatoire
  41. $message_html .= "<u>Un message vient d'arriver par le formulaire de contact :</u><br /><br />";
  42. $message_html .= "<b>Identité :</b><br />".$nom." ".$prenom."<br /><br />";
  43. $message_html .= "<b>Email :</b><br />".$email."<br /><br />";
  44. $message_html .= "<b>Téléphone :</b><br />".$telephone."<br /><br />";
  45. $message_html .= "<b>Adresse :</b><br />".$adresse."<br />".$cpostal." ".$ville."<br /><br />";
  46. $message_html .= "<b>Message :</b><br /><div style='padding: 5px; margin: 5px;'>".$commentaire."<br /></div>";
  47. $message_html .= "</body></html>"; // Obligatoire
  48.  
  49. # Création de la boundary #
  50. $boundary = "-----=".md5(rand());
  51.  
  52. # Création du header de l'e-mail #
  53. $header = "From: \"".$nom_expediteur."\"<".$adresse_expediteur.">".$passage_ligne;
  54. $header.= "Reply-to: \"".$nom_expediteur."\" <".$adresse_expediteur.">".$passage_ligne;
  55. $header.= "MIME-Version: 1.0".$passage_ligne;
  56. $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"".$boundary."\"".$passage_ligne;
  57. $header.= "X-Mailer: PHP/".phpversion().$passage_ligne;
  58.  
  59. # Création du message #
  60. $message = $passage_ligne."--".$boundary.$passage_ligne;
  61. # Ajout du message au format texte #
  62. $message.= "Content-Type: text/plain; charset=\"UTF-8\"".$passage_ligne;
  63. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  64. $message.= $passage_ligne.$message_txt.$passage_ligne;
  65. $message.= $passage_ligne."--".$boundary.$passage_ligne;
  66. # Ajout du message au format HTML #
  67. $message.= "Content-Type: text/html; charset=\"UTF-8\"".$passage_ligne;
  68. $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
  69. $message.= $passage_ligne.$message_html.$passage_ligne;
  70. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  71. $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
  72.  
  73. # Envoi du message #
  74. mail($mail,$sujet,$message,$header);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement