Formulaire PHP
Résolu
46.Divers
Messages postés
56
Statut
Membre
-
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)
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)
A voir également:
- Formulaire PHP
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Easy php - Télécharger - Divers Web & Internet
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Webmastering
14 réponses
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+
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+
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 ...
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 ...
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+
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+
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.
<?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.
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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.
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.
Alors encore une tentative en modifiant cette portion de ton code PHP :
Et si ça ne fonctionne toujours pas, je ne vois pas d'où le problème peut survenir...
Cdlt.
$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.
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'];
tu peux essayer en mettant <input type="hidden" name="destinataire" value="46.divers@gmail.com"> après $adresse= $_POST['destinataire'];
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
Quand je vais sur le site il me met :
Parse error: syntax error, unexpected '<' in /home/u889438527/public_html/formmail.php on line 4
<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>
<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>
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
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é)]");
}
?>
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é)]");
}
?>
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 :
P.S. : Evite les lettres accentuées dans les name de formulaire car elles peuvent devenir "gênantes" dans un script PHP. Donc :
Et dans le script PHP devient :
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.
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>• TEST envoi mail sur Gmail.com •</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.
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
La réponse est ici :
https://support.google.com/mail/answer/10313?hl=fr