Formulaire message html + php

Fermé
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 6 juil. 2022 à 11:12
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 7 juil. 2022 à 18:43
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 juil. 2022 à 11:38
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
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11
6 juil. 2022 à 19:48
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
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
6 juil. 2022 à 19:59
Ah oui... Faut découper le code en deux lignes

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


0
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
7 juil. 2022 à 18:43

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
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 11
7 juil. 2022 à 11:04

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