Partage
  • Partager sur Facebook
  • Partager sur Twitter

formulaire de contact sur site free

    12 janvier 2025 à 14:42:16

    bonjour

    je suis entrain de monter un site perso hébergé par free : par ex. monsite.free.fr

    je n'arrive pas à fabriquer un formulaire de contact qui marche.

    J'ai passé un après midi entier à tester, lire, copier, coller etc et rien ne marche je n'ai aucun message sur ma boîte associé "monblog@free.fr"

    Voici le html

    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="icon" href="../loup.png">
        <link rel="stylesheet" href="Site/style.css" type="text/css" charset="utf-8">
        <title>Contact</title>
    </head>
    <body>
        <form method="post" action="sitecontact.php">
            <fieldset>
                <legend>Contactez-nous</legend> 
                <label for="message">Tapez votre message ici :</label>
                <textarea id="message" name="message" rows="10" cols="30" required placeholder="Votre message..."></textarea>
                 <button type="submit">Envoyer</button>
            </fieldset>
        </form>
    </body>
    </html>

    et voici sitecontact.php tel qu'il est donné ici https://lesdocs.fr/envoi-du-contenu-dun-formulaire-vers-un-email/

    <?php
    // Vérifiez si le formulaire a été soumis
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // Validation des données d'entrée
        if (isset($_POST['message']) && !empty(trim($_POST['message']))) {
            $message = trim($_POST['message']); 
            // Adresse email de l'expéditeur (avec validation)
            $from = 'webmaster@monsite.fr'; // Remplacez par une adresse valide sur votre domaine
            $fromName = 'Webmaster'; 
            // Adresse email du destinataire (à remplacer par la tienne)
            $to = 'destinataire@free.fr';
            $subject = 'Envoi depuis la page Contact'; 
            // Construction des entêtes
            $headers = [
                'From' => "$fromName <$from>",
                'Reply-To' => $from,
                'X-Mailer' => 'PHP/' . phpversion(),
                'Content-Type' => 'text/plain; charset=UTF-8'
            ]; 
            // Convertir les entêtes en une chaîne pour la fonction mail()
            $headersString = '';
            foreach ($headers as $key => $value) {
                $headersString .= "$key: $value\r\n";
            } 
            // Nettoyage des données pour éviter l'injection d'entêtes
            $message = filter_var($message, FILTER_SANITIZE_STRING); 
            // Envoi de l'email
            if (mail($to, $subject, $message, $headersString)) {
                echo '<p>Votre message a bien été envoyé.</p>';
            } else {
                echo '<p>Une erreur est survenue lors de l\'envoi du message. Veuillez réessayer plus tard.</p>';
            }
        } else {
            echo '<p>Le message est vide ou invalide. Veuillez remplir tous les champs.</p>';
        }
    } else {
        echo '<p>Le formulaire n\'a pas été soumis correctement.</p>';
    }
    ?>

    Je n'ai pas d'erreur mais je ne reçois rien sur le compte adjoint "monsite@free.fr" or on écrit partout que les pages perso free accepte mail()

    Est-ce que quelqu'un peut m'aider ?

    Inutile pour l'instant de me dire que ce n'est pas sécurisé et patati et patata... Pour le moment je voudrais recevoir quelque chose




    • Partager sur Facebook
    • Partager sur Twitter
      13 janvier 2025 à 12:58:36

      Salut

      Tu as bien remplacé l'adresse mail d'envoi ? Attention, d'après les commentaires, il faut que ladite adresse existe, si c'est toujours valable, le simple fait d'utiliser une adresse avec le nom de domaine correct n'est pas suffisant. D'ailleurs, quel nom de domaine utilises-tu, vu que tu utilises tonsite.free.fr ? Il n'est pas impossible qu'il faille un nom de domaine "définitif" genre tonsite.tld.

      -
      Edité par Ymox 13 janvier 2025 à 12:59:11

      • Partager sur Facebook
      • Partager sur Twitter
        14 janvier 2025 à 22:24:18

        Je suis bien obligé d'utiliser "monsite.free.fr" puisque c'est une page perso.

        Je ne crois pas que je puisse utiliser un autre nom.

        Que veux-tu dire par "définitif" ?

        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2025 à 9:48:23

          Par "définitif", j'entends un nom de domaine qui ne soit pas en free.fr, comme on le ferait pour un site usuel. Oui, c'est possible.

          Je n'avais pas fait attention, tu envoies le mail avec From: $fromName <$from&gt;. Suivant les réglages de chez Free (et ce sera certainement le cas chez d'autres hébergeurs), il faut peut-être feinter cela. Change From pour y mettre l'adresse de ton hébergement (ou tonsite@free.fr) — oui, comme si c'était toi qui envoyais le mail, ce qui est d'ailleurs le cas vu que c'est ton site où l'utilisateur ne fait que soumettre un formulaire, c'est toi qui veux que ce soit envoyé par mail —, et mets l'adresse de l'expéditeur dans un nouvel en-tête Reply-to: $fromName <$from>.
          Si ce formulaire de contact est vraiment important, prépare en plus de l'envoi par mail une copie dans un fichier quelque part sur le site.

          Note que les quelques questions sur les forums à propos des mails envoyés depuis un site chez Free semblaient considérer que la fonctionnalité n'est pas nécessairement fiable, mais je n'ai rien qui me permette de tester.

          -
          Edité par Ymox 16 janvier 2025 à 22:40:42

          • Partager sur Facebook
          • Partager sur Twitter
            28 janvier 2025 à 15:09:22

            Bonjour

            désolé de revenir si tard mais j'ai plein de fer au feu

            j'ai testé au plus simple en créant un fichier html qui en dehors des meta

            contient juste

            <body>
            
            <?php
            mail('monsite@free.fr', 'test', 'test', 'From: test <monsite@free.fr>');
            ?>
            <\body>        


            et bien sûr rien ne se passe !

            • Partager sur Facebook
            • Partager sur Twitter
              28 janvier 2025 à 16:32:21

              Est-ce que ce script a été exécuté avec les erreurs de PHP activées ?
              Est-ce que tu peux vérifier le retour de la fonction mail() ? Si c'est false, on a déjà un élément de réponse. Si c'est true, cela ne veut malheureusement pas dire que le mail sera bel et bien envoyé, juste que la partie que peut gérer PHP s'est bien passée. Le reste, c'est aux serveurs SMTP de Free, et peut-être y aurait-il des logs, mais ils ne sont apparemment pas publics.

              Edit

              A tout hasard, essaie sans mettre d'en-tête particulier ? Ou à tout le moins sans From:.

              -
              Edité par Ymox 28 janvier 2025 à 16:55:08

              • Partager sur Facebook
              • Partager sur Twitter
                2 février 2025 à 16:04:19

                Oui j'ai vu ces pages et ... rien

                il n'y a pas de warning et aucun message dans les boîtes !

                il y a juste

                "Merci de votre visite, vous allez recevoir un message à l'adresse : adresse@gmx.fr"

                Je ne sais vraiment pas quoi faire !

                J'ai même essayé avec une autre adresse ...rien

                • Partager sur Facebook
                • Partager sur Twitter
                  2 février 2025 à 16:43:59

                  Bonjour, avez-vous activé les erreurs comme suggéré par Ymox ? Est-il possible de voir votre code complet ?
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Comar

                  formulaire de contact sur site free

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  • Editeur
                  • Markdown