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.
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]<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>[/code]
Et le code de la page appelée "contact_test" :
[code]<?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>";
}
}
}
?>[/code]
Au besoin, mon hébergeur est Ionos.
Merci d'avance pour votre aide.