Problème de réception de mail lié à un formulaire

Eric1978
Invité n'ayant pas de compte PHPfrance

13 juil. 2021, 12:06

Bonjour à tous,

Je viens solliciter votre aide car je m'arrache les cheveux depuis hier sur un problème.
Je veux recevoir un mail reprenant les données renseignés par l'utilisateur dans un formulaire.
Tout cela fonctionne très bien lors de mes essais en local, tout est nickel !
Mais ça ne fonctionne plus lorsque je mets le site en ligne (mon frère m'a laissé une place sur son hébergeur DRI).
Pas de message d'erreur spécifique, le mail semble bien partir, mais je ne reçois rien dans ma boîte de destination.

Voici mes extraits de code :

HTML:
<form action="confirmformulaire.php" method="post">
<div>
<label for="name" class="intitule">Nom :</label>
<input type="text" id="name" required name="user_name" />
</div>
<div>
<label for="mail" class="intitule">e-mail :</label>
<input type="email" id="mail" required name="user_mail" />
</div>
<div>
<label for="phone" class="intitule">Téléphone : <a class="afacultatif"> (facultatif)</a></label>
<input type="tel" id="phone" name="user_phone" pattern="[0-9]{10}" maxlength="10" />
</div>

<div>
<label for="msg" class="intitule">Message :</label>
<textarea id="msg" required name="user_message"></textarea>
</div>

<div class="conteneurbutton2">
<button id="button2" type="submit" name="envoi">Envoyer le message</button>
</div>
</form>

PHP :
<?php
if (!empty($_POST)) {

$nom = $_POST['user_name'] ;
$mail = $_POST['user_mail'] ;
$phone = $_POST['user_phone'] ;
$message = $_POST['user_message'] ;

//ini_set("SMTP", "smtp.xxxx .fr"); (à utiliser uniquement pour les tests en local)

$mailheaders = "MIME-Version: 1.0\n";
$mailheaders .= "Content-type: text/html; charset=ISO-8859-1\n";
$mailheaders .= 'Reply-To: '.$mail."\n";
$mailheaders .= 'From: ' .$mail."\n";

$msg = '<h1>Message envoyé depuis la page Contact de mon site</h1>
<p><b>Nom : </b>' .$nom. '<br>
<b>Email : </b>' .$mail.'<br>
<b>Téléphone : </b>' .$phone.'<br>
<b>Message : </b>' .$message. '</p>';

$recipient = "monmail";
$subject = "Réponse au Formulaire";

mail($recipient, $subject, $msg, $mailheaders);
}
?>

Merci par avance de votre aide et bonne journée.

Avatar du membre
Eléphant du PHP | 70 Messages

13 juil. 2021, 15:29

Salut,

Je te conseille très fortement de passé à PHPMailer pour faire ce genre de chose : https://github.com/PHPMailer/PHPMailer

Il s'occupera pour toi d'éviter certaines failles de sécurité et faire en sorte, entre autre, que tes mails ne finissent pas dans la boite de spam

En plus de ça, il est très facile d'utilisation et bien documenté
" La révolution informatique fait gagner un temps fou aux Hommes, mais ils le passent avec leur ordinateur ! " by Khalil Assala