Problème formulaire mail

Petit nouveau ! | 1 Messages

24 août 2024, 11:37

Bonjour à toutes et tous,

Après plusieurs essais infructueux, je me tourne vers des personnes (beaucoup) plus qualifiées que moi en php...

Je rencontre un problème avec mon formulaire de contact incluant une fonction mail qui me renvoie une erreur d'envoi sans que je ne comprenne d'où elle peut venir...
J'ai essayé plusieurs scripts des plus simples aux plus évolués et le problème apparait toujours...

Je vous laisse ci-dessous le code html :

Code : Tout sélectionner

<form action="contact_test.php" method="post"> Mail : <input type="text" name="mail"> <br> Sujet : <input type="text" name="sujet"> <br> Message : <textarea name="message" cols="40" rows="20"></textarea> <br> <input type="submit" name="envoyer" value="Envoyer"> </form>
Et le code de la page appelée "contact_test" :

Code : Tout sélectionner

<?php $votre_adresse_mail = 'mon_adresse_mail'; if(isset($_POST['envoyer'])){ if(empty($_POST['mail'])) { echo "<p>Le champ mail est vide.</p>"; }elseif(!preg_match("#^[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?@[a-z0-9_-]+((\.[a-z0-9_-]+){1,})?\.[a-z]{2,}$#i", $_POST['mail'])){ echo "<p>L'adresse mail entrée est incorrecte.</p>"; }elseif(empty($_POST['sujet'])){ echo "<p>Le champ sujet est vide.</p>"; }elseif(empty($_POST['message'])){ echo "<p>Le champ message est vide.</p>"; }else{ $mail_de_lutilisateur = $_POST['mail']; $entetes_du_mail = []; $entetes_du_mail[] = 'MIME-Version: 1.0'; $entetes_du_mail[] = 'Content-type: text/html; charset=UTF-8'; $entetes_du_mail[] = 'From: Nom de votre site <' . $mail_de_lutilisateur . '>'; $entetes_du_mail[] = 'Reply-To: Nom de votre site <' . $mail_de_lutilisateur . '>'; $entetes_du_mail = implode("\r\n", $entetes_du_mail); $sujet = '=?UTF-8?B?' . base64_encode($_POST['sujet']) . '?='; $message = htmlentities($_POST['message'], ENT_QUOTES, 'UTF-8'); if(mail($votre_adresse_mail, $sujet, $message, $entetes_du_mail)){ echo "<p>Le mail à été envoyé avec succès !</p>"; }else{ echo "<p>Une erreur est survenue, le mail n'a pas été envoyé.</p>"; } } } ?>
Au besoin, mon hébergeur est Ionos.
Merci d'avance pour votre aide.

Mammouth du PHP | 2672 Messages

24 août 2024, 17:30


Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9708 Messages

25 août 2024, 11:04

Bonjour,

Si tu testes ton code en local, la raison probable c'est que tu n'as pas de serveur mail installé sur ton ordi, donc c'est normal que celà échoue.
Si tu testes ton code chez un hébergeur, mon conseil serait de reprendre dans un nouveau script exactement le code exemple de la fonction mail() de la documentation PHP sans rien ajouter de plus (à part ton adresse e-mail bien sûr) et si ça ne fonctionne pas contactes ton hébergeur.
Quand tout le reste a échoué, lisez le mode d'emploi...