Problème formulaire mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème formulaire mail

Re: Problème formulaire mail

par @rthur » 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.

Re: Problème formulaire mail

par or 1 » 24 août 2024, 17:30

Problème formulaire mail

par sokratt » 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.