La seule chose à faire est de copier/coller le code et de le placer dans un fichier avec l'extension .php (ou .shtml, .php3, etc...) Attention, n'oubliez pas d'indiquer votre adresse e-mail a la 3° ligne ! Contact

Contact

'; $Envoi="\n".'

'; if (isset($_POST['message'])) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; //quelques remplacements pour les specialchars $message=preg_replace('#(<|>)#', '-', $_POST['message']); $message=str_replace('"', "'",$message); $message=str_replace('&', 'et',$message); $objet=preg_replace('#(<|>)#', '-', $_POST['objet']); $objet=str_replace('"', "'",$objet); $objet=str_replace('&', 'et',$objet); // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); //input envoi/previsualiser $envoi=htmlentities($_POST['envoi']); $previsualiser=htmlentities($_POST['previsualiser']); //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); $apercu_resultat='

Aperçu du résultat :

'; /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message))or(empty($objet))or(!preg_match($verif,$votremail))) { //les 3 champs sont vides if(empty($votremail)and(empty($message))and(empty($objet))) { echo '

Tous les champs sont vides.

'; $message='';$votremail='';$objet='';$apercu_resultat=''; } //un des champs est vide else { if(!preg_match($verif,$votremail)) echo'

Votre adresse e-mail n\'est pas valide.

'; else { echo'

Il faut remplir tous les champs !

'; if(empty($message)) $apercu_resultat=''; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) echo'

Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.

'; elseif(!empty($previsualiser)) { $apercu_resultat='

Votre message et votre adresse e-mail sont valides et prêts à être envoyés.
Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer".
Prévisualisation :

'; $Previsualiser=''; } elseif(!empty($envoi)) { $objet='[SITE] : '.$objet; $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=iso-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i'); if(mail($destinataire,$objet,$message,$headers)) { echo '

Votre message a bien été envoyé. Merci.

Retour à la page d\'accueil

'; $Envoi=''; $Previsualiser=''; } else echo'

Un problème est survenu durant l\'envoi du mail.

'; } else echo'

Une condition innatendue est survenue lors de l\'exécution du script.

'; } echo $apercu_resultat; } else { echo '

Vous pouvez utiliser ce formulaire pour me contacter.

'; $votremail='';$message=''; } $bas_formulaire=$Previsualiser.$Envoi; ?>

>>>> */'[email protected]'/* <<<<< */ ); //ajouter votre courriel define( 'MAIL_FROM', '[email protected]' ); // valeur par défaut define( 'MAIL_OBJECT', 'objet du message' ); // valeur par défaut define( 'MAIL_MESSAGE', 'votre message' ); // valeur par défaut $mailSent = false; // drapeau qui aiguille l'affichage du formulaire OU du récapitulatif $errors = array(); // tableau des erreurs de saisie if( filter_has_var( INPUT_POST, 'send' ) ) // le formulaire a été soumis avec le bouton [Envoyer] { $from = filter_input( INPUT_POST, 'from', FILTER_VALIDATE_EMAIL ); if( $from === NULL || $from === MAIL_FROM ) // si le courriel fourni est vide OU égale à la valeur par défaut { $errors[] = 'Vous devez renseigner votre adresse de courrier électronique.'; } elseif( $from === false ) // si le courriel fourni n'est pas valide { $errors[] = 'L\'adresse de courrier électronique n\'est pas valide.'; $from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL ); } $object = filter_input( INPUT_POST, 'object', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW ); if( $object === NULL OR $object === false OR empty( $object ) OR $object === MAIL_OBJECT ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut { $errors[] = 'Vous devez renseigner l\'objet.'; } /* pas besoin de nettoyer le message. / http://www.phpsecure.info/v2/article/MailHeadersInject.php / Logiquement, les parties message, To: et Subject: pourraient servir aussi à injecter quelque chose, mais la fonction mail() / filtre bien les deux dernières, et la première est le message, et à partir du moment où on a sauté une ligne dans l'envoi du mail, / c'est considéré comme du texte; le message ne saurait donc rester qu'un message.*/ $message = filter_input( INPUT_POST, 'message', FILTER_UNSAFE_RAW ); if( $message === NULL OR $message === false OR empty( $message ) OR $message === MAIL_MESSAGE ) // si le message fourni est vide ou égale à la valeur par défaut { $errors[] = 'Vous devez écrire un message.'; } if( count( $errors ) === 0 ) // si il n'y a pas d'erreurs { if( mail( MAIL_TO, $object, $message, "From: $from\nReply-to: $from\n" ) ) // tentative d'envoi du message { $mailSent = true; } else // échec de l'envoi { $errors[] = 'Votre message n\'a pas été envoyé.'; } } } else // le formulaire est affiché pour la première fois, avec les valeurs par défaut { $from = MAIL_FROM; $object = MAIL_OBJECT; $message = MAIL_MESSAGE; } ?> Contact

Contact


Votre message a bien été envoyé.

Courriel pour la réponse :

Objet :

Message :

\n" ); foreach( $errors as $error ) { echo( "\t\t\t
  • $error
  • \n" ); } echo( "\t\t\n" ); } else { echo( "\t\t

    Tous les champs sont obligatoires

    \n" ); } ?>