Formulaire PHP

Résolu
46.Divers Messages postés 56 Statut Membre -  
46.Divers Messages postés 56 Statut Membre -
Bonjour,
j'ai fait un formulaire php pour mon site, et je récupère les données par mail. Pour l'instant tout va bien. Je reçois bien le mail avec les données. Mais quand je change mon adresse email dans la page php par une autre je ne reçois plus aucun mail. J'ai donc essayer d'essayer avec d'autre adresse, le mail est recu. Le problème c'est que je veux a tout pris mettre cette adresse email et c'est justement celle qui ne marche pas . Pourquoi je ne recois pas de mail ? ( l'adresse que je veux est une adresse gmail)

14 réponses

trusttelecom Messages postés 326 Statut Membre 36
 
Salut,

A mon avis le problème n'est pas ....
Car si tu envoie des mails et qu'ils sont tous reçus sauf celui de ton gmail c'est que tu as un problème sur ton mail et non sur le script qui envoie les mails.

A+
1
46.Divers Messages postés 56 Statut Membre 32
 
Je pense aussi que cela ne viens pas du code, car cela marche avec une autre adresse gmail que j'ai ...
0
mafitsi Messages postés 11 Statut Membre 1
 
bsr, je pense que PHP bloque l'envoi du message à cette adresse email "(adresse mail supprimée)" à cause du point qui est entre 46 et divers, à suivre ...
1
mpmp93 Messages postés 7217 Statut Membre 1 340
 
Bonjour,

On ne comprend pas bien la nature du problème.... Il est normal qu'en changeant l'adresse mail, vous ne receviez plus les données.

CITE: " je récupère les données par mail"

Données? Du texte, du code? des données enregistrées en base?

Transmettre des données par mail, je parle de vrais données pour une base de données n'est pas la meilleure solution.

Avec un formulaire, on peut transmettre les données en "web service" vers un autre serveur. Je préconise les Web Service en mode REST. Avec Zend Framework, un WS REST se programme en une trentaine de lignes de code.

Exemple ici:
http://html5.immo-scope.com/index.php?page=webservices/WsRestFullViaZendFramework



A+
0
46.Divers Messages postés 56 Statut Membre 32
 
Voici mon code :

<?php

$adresse = "(adresse mail supprimée)";
$adresseclient= $_POST['Email'];

$TO = $adresse;

$head = "From: ".$adresseclient."\n";
$head .= "Content-Type: text/plain; charset=\"utf-8\"; DelSp=\"Yes\"; format=flowed \r\n";
$head .= "Content-Disposition: inline \r\n";
$head .= "Content-Transfer-Encoding: 7bit \r\n";
$head .= "MIME-Version: 1.0";

$sujet = "Formulaire de contact";

$informations =
"
Coordonnées du client
Nom: ".$_POST['Nom']." \r\n
Prénom: ".$_POST['Prénom']." \r\n
Email: ".$_POST['Email']." \r\n \r\n
Message:
".$_POST['Message']." \r\n
";

$res = mail($TO, $sujet ,$informations, $head);

if (true == $res) {
Header("Location: [(site supprimé)]");
} else {
Header("Location: [(site supprimé)]");
}
?>


Quand je met mon adresse email "(adresse mail supprimée)" par exemple pour recevoir, le nom, prénom, adresse mail et le message qui a été écrit sur le site par un client, cela marche très bien quand je me connecte sur mes mail.
Par contre, quand je met l'adresse email de mon père, car c'est lui qui doit recevoir ces infos et bien quand je vais sur sa boite mail il ne recoit aucun message où il devrait y avoir le nom, prénom, message et adresse mail du client ... Je ne comprend pas comment cela ne peut pas marcher puisque quand je met mon adresse à moi cela marche. J'espère que ce message sera plus claire que l'autre.
0
mpmp93 Messages postés 7217 Statut Membre 1 340
 
Bonjour,

Il faut aller voir en courrier indésirable.... Ils sont peut-être là.

J'explique:
- si vous envoyez un mail depuis hotmail.com, le SMTP est celui de hotmail
- si vous utilisez mail() en PHP depuis un site web, c'est le SMTP du site qui est utilisé, donc différend du SMTP du mail expéditeur.
- certaines messageries interprètent cette différence du domaine du mail et le SMTP émetteur comme une tentative de spam et les mails redirigés vers les courriers indésirables....
A+
0
46.Divers Messages postés 56 Statut Membre 32
 
Non, ils ne sont pas dans les indésirables
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
duweb Messages postés 388 Statut Membre 72
 
Le plus simple est de tester avec phpmailer
http://phpmailer.worxware.com/?pg=examplebgmail
https://github.com/Synchro/PHPMailer

Mais ce serait bien qu'on sache si les tests sont fait en local, si les mails sont récupérés par un client (windowsmail, thunderbird, ...) ou par le site gmail.com.

Ces questions peuvent paraître abstraites , mais ca nous permettra de mieux répondre
0
46.Divers Messages postés 56 Statut Membre 32
 
Les mails sont récupérés via Mozilla Thunderbird sur deux ordinateurs et, via gmail.com sur mon ordinateur. Mais test sont donc fait par le site gmail.

Pour ce qui est de tester par phpmailer je ne comprend pas trop ce que je dois faire car je suis débutante.
0
ReDLoG Messages postés 393 Statut Membre 57
 
Bonjour,

Tu devrais voir ici https://a-pellegrini.developpez.com/tutoriels/php/mail/
Chapitre 3 "Mise en pratique" lire le petit encadré sur fond jaune et tester ton script modifié comme indiqué...
Cdlt.
0
46.Divers Messages postés 56 Statut Membre 32
 
J'ai essayé cela ne marche toujours pas
0
ReDLoG Messages postés 393 Statut Membre 57
 
Alors encore une tentative en modifiant cette portion de ton code PHP :

$head = "From: ".$adresseclient."\r\n";
$head .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
// on supprime pour le test ceci => DelSp=\"Yes\"; format=flowed \r\n";
// et ceci aussi => $head .= "Content-Disposition: inline\r\n";
$head .= "Content-Transfer-Encoding: 7bit\r\n";
$head .= "MIME-Version: 1.0";

Et si ça ne fonctionne toujours pas, je ne vois pas d'où le problème peut survenir...

Cdlt.
0
46.Divers Messages postés 56 Statut Membre 32
 
Cela ne fonctionne toujours pas :/
0
trusttelecom Messages postés 326 Statut Membre 36
 
Bonsoir,

Le mail ne serait il pas tout simplement dans le dossier spam ??

A+
0
46.Divers Messages postés 56 Statut Membre 32
 
Non il n'y a rien dans les spams malheureusement.
0
mafitsi Messages postés 11 Statut Membre 1
 
Bjr, ce que je propose, au lieu de: $adresse = "46.divers@gmail.com";

tu peux essayer en mettant <input type="hidden" name="destinataire" value="46.divers@gmail.com"> après $adresse= $_POST['destinataire'];
0
46.Divers Messages postés 56 Statut Membre 32
 
Lorsque je met <input type="hidden" name="destinataire" value="46.divers@gmail.com"> après $adresse= $_POST['destinataire'];
Quand je vais sur le site il me met :
Parse error: syntax error, unexpected '<' in /home/u889438527/public_html/formmail.php on line 4
0
mafitsi Messages postés 11 Statut Membre 1
 
tu peux me donner le code html pour vérifier ?
0
46.Divers Messages postés 56 Statut Membre 32
 
<form method=POST action=formmail.php>
<input type="hidden" name="destinataire" value="46.divers@gmail.com">
<p>
<label for="Nom"> Nom: </label> <input type="text" name="Nom" id="Nom" required/>
</p>

<p>
<label for="Prénom"> Prénom: </label> <input type="text" name="Prénom" id="Prénom" required/>
</p>

<p>
<label for="Email"> Email: </label> <input type="email" name="Email" id="Email" required/>
</p>

<p>
<label for="Message"> Message: </label> <br/>
<textarea name="Message" id="Message" required></textarea>
</p>

<p>
<input type="submit" value="Envoyer" />
</p>

</form>
0
46.Divers Messages postés 56 Statut Membre 32
 
J'ai mieux refait le code comme vous m'avais dit cela marche avec mon adresse mail mais toujours pas avec celle de mon père... J'ai toujours le même problème
0
46.Divers Messages postés 56 Statut Membre 32
 
Je ne pense pas que le problème vienne du code mais plutot de gmail !
0
46.Divers Messages postés 56 Statut Membre 32
 
Voici le code que j'utilise depuis le début :

Html:

<form method=POST action=formmail.php>
<p>
<label for="Nom"> Nom: </label> <input type="text" name="Nom" id="Nom" required/>
</p>

<p>
<label for="Prénom"> Prénom: </label> <input type="text" name="Prénom" id="Prénom" required/>
</p>

<p>
<label for="Email"> Email: </label> <input type="email" name="Email" id="Email" required/>
</p>

<p>
<label for="Message"> Message: </label> <br/>
<textarea name="Message" id="Message" required></textarea>
</p>

<p>
<input type="submit" value="Envoyer" />
</p>

</form>


et le php:

<?php

$adresse= 'adresse de mon père';
$adresseclient= $_POST['Email'];

$headers = "From: ".$adresseclient."\n";
$headers .= "Content-Type: text/plain; charset=\"utf-8\"\n";
$headers .= "Content-Transfer-Encoding: 7bit \n";
$headers .= "MIME-Version: 1.0";

$subject = "Formulaire de contact";

$informations =
"
Coordonnées du client
Nom: ".$_POST['Nom']."
Prénom: ".$_POST['Prénom']."
Email: ".$_POST['Email']." \n
Message:
".$_POST['Message']."
";

if (mail($adresse, $subject ,$informations, $headers)) {
Header("Location: [(site supprimé)]");
} else {
Header("Location: [(site supprimé)]");
}

?>
0
ReDLoG Messages postés 393 Statut Membre 57
 
J'ai testé ton code par envoi sur mon adresse Gmail et je le reçois correctement.
Voici le code de test que j'ai utilisé et qui est fonctionnel :
<?php
$to = 'xxxxxxxxx@gmail.com';
$from = $_POST['Email'];

$subject = "Test formulaire de contact";

$headers = "From: ".$_POST['Nom']." ".$_POST['Prenom']." <".$from.">\r\n";
$headers .= "Content-Type: text/plain; charset=\"utf-8\"\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
$headers .= "MIME-Version: 1.0";

$infos = "Coordonnées du client\r\n";
$infos .= "Nom: ".$_POST['Nom']." Prénom: ".$_POST['Prenom']."\r\n";
$infos .= "Email: ".$from."\r\n";
$infos .= "Message: ".$_POST['Message']."\r\n";

if (mail($to, $subject, $infos, $headers)) {
	$msg = "Votre message a été envoyé avec succès sur Gmail.com";
} else {
	$msg = "Impossible d'envoyer votre message sur Gmail.com";
}
?><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>&bull; TEST envoi mail sur Gmail.com &bull;</title>
</head>

<body>
<p><?php if(isset($msg)) echo $msg; ?></p>
<form method="post" action="mail_test_envoi_gmail.php">
	<p><label for="Nom">Nom:</label> <input type="text" name="Nom" id="Nom" required /></p>
	<p><label for="Prénom">Prénom:</label> <input type="text" name="Prenom" id="Prenom" required /></p>
	<p><label for="Email">Email:</label> <input type="email" name="Email" id="Email" required /></p>
	<p><label for="Message">Message:</label><br />
	<textarea name="Message" id="Message" required></textarea></p>
	<p><input type="submit" name="SEND" value="Envoyer" /></p>
</form>
</body>
</html>

P.S. : Evite les lettres accentuées dans les name de formulaire car elles peuvent devenir "gênantes" dans un script PHP. Donc :
<input type="text" name="Prenom" id="Prenom" required />

Et dans le script PHP devient :
$_POST['Prenom']


En résumé, j'ai lu quelque part sur le net que Gmail "blacklist" certains domaines considérés comme spam, je ne sais pas si il y a un rapport direct avec ton souci (https://forum.ovh.com/
Mais je le répète, le code ci-dessus fonctionne parfaitement, tu devrais en faire un Copier/Coller et l'enregistrer sous "mail_test_envoi_gmail.php" et tester par toi-même!

Cdlt.
0
46.Divers Messages postés 56 Statut Membre 32
 
Bonjours
merci beaucoup de bien vouloir m'aider je ferais les test demain soir et vous tiendrai au courant
0
46.Divers Messages postés 56 Statut Membre 32
 
Alors j'ai essayer votre code c'est toujours pareil cela marche avec l'adresse (adresse mail supprimée) mais toujours pas avec l'adresse gmail de mon père ... :/ (l'adresse gmail de mon père contient 3 points en tout) peut etre ce serait ces points qui empèche d'envoyer le mail ?
0
46.Divers Messages postés 56 Statut Membre 32
 
J'ai enfin réussi a résoudre le problème!!! Le problème ne venait pas du code mais des points qu'il y avait dans l'adresse gmail.
La réponse est ici :
https://support.google.com/mail/answer/10313?hl=fr
0