Formulaire message html + php

t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   -  
t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai un formulaire que j'ouvre via html, puis l'envoie se fait par script php. En retour, un remerciement par script php.
Tout fonctionne bien, sauf que le message n'arrive pas dans la boite mail. Même que le remerciement en retour s'affiche. Donc cela vient du script php, mais je ne trouve pas ce qui cloche !!!???
Le script html
<div class="bienvenue"><center>
<FORM method="POST" action="contact.php">
Votre nom:<br>
<INPUT type="text" name="nom" size=30>
<P>Votre prénom:<br>
<INPUT type="text" name="prenom" size=30>
</P>
<P>Votre adresse E-Mail:<br>
<INPUT type="text" name="email" size=30>
</p>
<P>Votre message:<br>
<textarea name="message" cols=74 rows=8></textarea>
</p><INPUT type="submit" value="Envoyer"></a>
       <input type="reset" value="Effacer">
</FORM></center></div>


Le script php
<?php 

$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$message = $_POST['message'];

$message2 = stripslashes($message); //----pour éviter les \ ds les msgs de réception 
$nom = strtoupper($nom);
$prenom = ucfirst($prenom); 

$msg = "De:\t$nom $prenom\n";
$msg .= "E-Mail:\t$email\n\n";
$msg .= "Message:\t$message2\n\n";
//Pourait continuer ainsi jusqu'?la fin du formulaire
$recipient = "monadresse.mail@gmail.com";			
$subject = "Contact genfamille";
$mailheaders = "From: Formulaire contact genfamille<> \n";
$mailheaders .= "Reply-To: $email\n\n";

mail($recipient, $subject, $msg, $mailheaders);

header("Location: index.php?page=remerciement&nom=$nom&prenom=$prenom" ); 


Merci

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    Donc.. la question concerne le PHP .... je déplace donc dans le bon forum ( encore... )

    Ensuite,
    Pour voir les éventuelles erreurs, commence par mettre un IF sur l'envoi de mail pour voir si ça fonctionne...
    par exemple :
    if( mail($recipient, $subject, $msg, $mailheaders) ){
      header("Location: index.php?page=remerciement&nom=$nom&prenom=$prenom" ); 
      exit; //toujours mettre un exit après une redirection
    }else{
      echo "Erreur lors de l'envoi du mail...";
      //pour le debug :
      var_dump([$recipient, $subject, $msg, $mailheaders]);
    }
    

    0
  2. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11
     
    Merci jordane45.
    J'ai un message d'erreur Parse error: syntax error, unexpected '[' in /mnt/168/sda/5/0/th1/tatachat/contact.php on line 44
    qui est la ligne du "var_dump".
    Et je ne trrouve pas ce qui cloche .................
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Ah oui... Faut découper le code en deux lignes

      $test=[$recipient, $subject, $msg, $mailheaders];
      var_dump($test);
      }


      0
      1. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         

        J'ai compris pourquoi je ne reçois pas les messages envoyés du formulaire.

        Car dans $recipient je met mon adresse gmail. Si je met par exemple une adresse Free, ça passe. Ils ont des filtres sur leurs serveurs pous réduire les spams.

        Le site est héberger chez free, et je voulais recevoir le formulaire sur gmail. Le message reçu chez free à chacune de mes tentatives

        This is the mail system at host perso1.free.fr.

        I'm sorry to have to inform you that your message could not
        be delivered to one or more recipients. It's attached below.

        For further assistance, please send mail to postmaster.

        If you do so, please include this problem report. You can
        delete your own text from the attached returned message.

                           The mail system

        <
        mon_adresse@gmail.com>: host gmail-smtp-in.l.google.com[108.177.15.26]
            said: 550-5.7.26 This message does not have authentication information or
            fails to 550-5.7.26 pass authentication checks (SPF or DKIM). To best
            protect our users 550-5.7.26 from spam, the message has been blocked.
            Please visit 550-5.7.26
            
        https://support.google.com/mail/answer/81126#authentication for more 550
            5.7.26 information. c13-20020a056000184d00b0021d7cfff617si8431162wri.214 -
            gsmtp (in reply to end of DATA command)

        Reporting-MTA: dns; perso1.free.fr
        X-Postfix-Queue-ID: 5669E1845E88
        X-Postfix-Sender: rfc822; adr_hébergement dite
        adr_hébergement site@free.fr
        Arrival-Date: Thu,  7 Jul 2022 18:22:43 +0200 (CEST)

        Final-Recipient: rfc822; mon_adresse
         mon_adresse@gmail.com
        Original-Recipient: rfc822s mon_adresse@gmail.com
        Action: failed
        Status: 5.7.26
        Remote-MTA: dns; gmail-smtp-in.l.google.com
        Diagnostic-Code: smtp; 550-5.7.26 This message does not have authentication
            information or fails to 550-5.7.26 pass authentication checks (SPF or
            DKIM). To best protect our users 550-5.7.26 from spam, the message has been
            blocked. Please visit 550-5.7.26
            
        https://support.google.com/mail/answer/81126#authentication for more 550
            5.7.26 information. c13-20020a056000184d00b0021d7cfff617si8431162wri.214 -
            gsmtp

        Objet

        Formulaire

        De

        xxx@free.fr

        À

        mon_adresse@gmail.com

        Date

        Aujourd'hui 18:22


        Nom:    humbert
        E-Mail:     adr_hébergement_site @free.fr
        Message:    test !!!!

        0
  3. t671 Messages postés 1475 Date d'inscription   Statut Membre Dernière intervention   11
     

    Salut jordane45.

    Si j'applique ta solution

    if( mail($recipient, $subject, $msg, $mailheaders) ){
      header("Location: index.php?page=remerciement&nom=$nom&prenom=$prenom" ); 
      exit; //toujours mettre un exit après une redirection
    }else{
      echo "Erreur lors de l'envoi du mail...";
      //pour le debug :
    $test=[$recipient, $subject, $msg, $mailheaders];
    var_dump($test);
    }

    J'ai une erreur sur la ligne $test : Parse error: syntax error, unexpected '[' in /mnt/168/sda/5/0/th1/tatachat/contact.php on line 44

    je n'ai pas trouvé comment résoudre cela.

    Par contre, j'ai trouvé sur internet

    $result = mail($recipient, $subject, $msg, $mailheaders);
    var_dump($result);

    J'ai eu comme résultat bool(true)

    0