A voir également:
- Mrelayeu.kundenserver.de
- Mise a jour chrome - Accueil - Applications & Logiciels
- Programmer envoi mail gmail - Guide
- Accès refusé - Guide
- Google chrome - Télécharger - Navigateurs
- Publipostage mail - Accueil - Word
19 réponses
Bonjour,
Le PHP s'exécutant côté serveur ... il y a peu de chances que le souci vienne directement du navigateur....
Quand le souci arrive .. as tu essayé de voir ce que contiennent les différentes variables ( en les écrivant dans un fichier de log par exemple ) ou en les mettant dans le ELSE ( bien entendu, pour les voir, retirer la redirection à la fin du script )
Le PHP s'exécutant côté serveur ... il y a peu de chances que le souci vienne directement du navigateur....
Quand le souci arrive .. as tu essayé de voir ce que contiennent les différentes variables ( en les écrivant dans un fichier de log par exemple ) ou en les mettant dans le ELSE ( bien entendu, pour les voir, retirer la redirection à la fin du script )
Salut Jordan,
Alors, ça je l'ai fait, j'avais mis en commentaire le header('Refresh pour avoir le temps
de lire mes echo $destinataire, $sujet, $contenu, $entete
Que voici :
contact@test.frFormulaire de contact site Internet Nom : MARTIN Prenom : Jean-Marc Téléphone : 0102030405 E-mail : test@test.fr Message : rrrrrrrrrrrrrrrrMIME-Version: 1.0 From:MARTIN Reply-To:test@test.fr Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 7bit X-Mailer:PHP/7.4.29
Pour dépanner j'ai écris ça en attendant :
Du coup les mails arrivent MAIS avec ça en entête : sh-184929988@eu.hosting-webspace.io
Alors, ça je l'ai fait, j'avais mis en commentaire le header('Refresh pour avoir le temps
de lire mes echo $destinataire, $sujet, $contenu, $entete
Que voici :
contact@test.frFormulaire de contact site Internet Nom : MARTIN Prenom : Jean-Marc Téléphone : 0102030405 E-mail : test@test.fr Message : rrrrrrrrrrrrrrrrMIME-Version: 1.0 From:MARTIN Reply-To:test@test.fr Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 7bit X-Mailer:PHP/7.4.29
Pour dépanner j'ai écris ça en attendant :
if(mail($destinataire, $sujet, $contenu)){//, $entete)){
Du coup les mails arrivent MAIS avec ça en entête : sh-184929988@eu.hosting-webspace.io
Ce qu'il faudrait, c'est comparer les variables dans les cas où ça fonctionne...
À noter que certains serveurs bloquent l'envoi des mails si dans le from, l'email indiqué ne correspond pas au nom de domaine du site.
Certains hébergeurs également, ont une limite en nombre de mails envoyés par jour par heure que ce soit au global sur tout leur site et où sur ton site à toi tout simplement.
Tu pourrais essayer également de retirer certains paramètres de ton header histoire de voir lequel peut éventuellement bloquer.
À noter que certains serveurs bloquent l'envoi des mails si dans le from, l'email indiqué ne correspond pas au nom de domaine du site.
Certains hébergeurs également, ont une limite en nombre de mails envoyés par jour par heure que ce soit au global sur tout leur site et où sur ton site à toi tout simplement.
Tu pourrais essayer également de retirer certains paramètres de ton header histoire de voir lequel peut éventuellement bloquer.
Tu as raison c'est le From qui fait planter : (2° ligne)
Si j'enlève les \\ mon mail ne part pas et j'ai droit au message d'erreur*, si je les remets, le mail arrive dans ma boite !
$entete= 'MIME-Version: 1.0' . "\r\n"; //ICI ÇA PLANTE => // $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . $entete .= 'Reply-To:' . $email . "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion();
Si j'enlève les \\ mon mail ne part pas et j'ai droit au message d'erreur*, si je les remets, le mail arrive dans ma boite !
- = "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS...etc
ÇA, ça fonctionne :
$entete= 'MIME-Version: 1.0' . "\r\n"; $entete .='From: webmaster@example.com' . "\r\n"; // <= ÇA FONCTIONNE //ICI ÇA PLANTE => // $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . $entete .= 'Reply-To:' . $email . "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion();
Edit : Pardon, j'avais pas bien lu le message.
Avant d'incriminer Chrome, as-tu essayé sur un autre navigateur (non chrome, donc exit Edge, Safari & co), comme Firefox ?
Avant d'incriminer Chrome, as-tu essayé sur un autre navigateur (non chrome, donc exit Edge, Safari & co), comme Firefox ?
Bonjour Henry
je cite une partie du message de base.
je cite une partie du message de base.
Après quelques tests, j'ai constaté qu'avec Firefox, il n'y avait aucun problème, les mails
arrivaient bien par contre avec Chrome depuis mon Linux ou depuis mon smartphone
Android, j'étais systématiquement dirigé vers un message d'erreur que j'avais écris il
y a plusieurs année pour avertir l'utilisateur que son mail n'avait pas été traité !
Je reviens vers vous pour savoir si avec un peu plus d'éléments vous n'auriez pas une piste ?
Voici un bout de code qui fonctionne :
Si je change ça dans le $header : webmaster@example.com en : webmaster, ça ne fonctionne plus !!!
Le problème d'insertion dynamique de l'adresse du Reply-To: va se poser également !
Je pense qu'une partie de la réponse doit se trouver là dedans :

Mais je pige pas trop ce qu'il faut faire !
Voici un bout de code qui fonctionne :
$to = 'adresseperso@gmail.com'; $subject = 'Formulaire de contact site Internet'; $message = '\nNom : $nom \nPrenom : $prenom \nTéléphone : $telephone \nE-mail : $email \nMessage : $text'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers);
Si je change ça dans le $header : webmaster@example.com en : webmaster, ça ne fonctionne plus !!!
Le problème d'insertion dynamique de l'adresse du Reply-To: va se poser également !
Je pense qu'une partie de la réponse doit se trouver là dedans :

Mais je pige pas trop ce qu'il faut faire !
Bonjour,
Le fait d'envoyer un mail avec une entête From: toto@mondomaine.com peut poser des problèmes de délivrabilité si mondomaine.com n'est pas configuré correctement. Les serveurs SMTP risque de considérer une usurpation d'identité sur l'émetteur toto@mondomaine.com et bloquer le mail.
Essaye de te renseigner auprès de ton registrar sur les enregistrements SPF et DKIM afin de configurer correctement la zone DNS du nom de domaine utilisé pour envoyer les mails.
Tu peux utiliser le site mail-tester.com pour tester la délivrabilité de ton mail et vérifier que les enregistrements SPF et DKIM sont bien configurés (page /spf-dkim-check)
Le fait d'envoyer un mail avec une entête From: toto@mondomaine.com peut poser des problèmes de délivrabilité si mondomaine.com n'est pas configuré correctement. Les serveurs SMTP risque de considérer une usurpation d'identité sur l'émetteur toto@mondomaine.com et bloquer le mail.
Essaye de te renseigner auprès de ton registrar sur les enregistrements SPF et DKIM afin de configurer correctement la zone DNS du nom de domaine utilisé pour envoyer les mails.
Tu peux utiliser le site mail-tester.com pour tester la délivrabilité de ton mail et vérifier que les enregistrements SPF et DKIM sont bien configurés (page /spf-dkim-check)
bonjour,
"insertion dynamique de l'adresse du Reply-To": d'où viendrait cette adresse?
Internet tente d'empecher des usurpations d'identité, entr'autres en vérifiant que le "reply-to" correspond bien à celui qui envoie le mail. Sinon, il est trop simple pour chacun d'envoyer des mails en indiquant lepape@vatican.va comme "reply-to".
"insertion dynamique de l'adresse du Reply-To": d'où viendrait cette adresse?
Internet tente d'empecher des usurpations d'identité, entr'autres en vérifiant que le "reply-to" correspond bien à celui qui envoie le mail. Sinon, il est trop simple pour chacun d'envoyer des mails en indiquant lepape@vatican.va comme "reply-to".
Salut yg_be, et merci pour ton aide à y voir plus clair...
Je viens donc d'appeler Ionos (mon hébergeur) et un technicien m'a aidé à créer un
enregistrement SPF dans mes paramètres DNS avec comme valeur :
v=spf1 include:_spf.perfora.net include:_spf.kundenserver.de ~all
Bref du Chinois pour moi...
Ce même technicien m'a expliqué que je n'aurai pas la possibilité chez Ionos d'avoir
un enregistrement DKIM, car pas de ça chez eux :-(
J'en ai profité pour modifier mon fichier envoi.php pour remplacer mon mail@nomdedomaine
par monmail@gmail.com car il m'a dit que le problème pouvait aussi venir de Google
et des adresses redirigées !
Il faut maintenant attendre 48h selon lui...
Quand je parlais d'insertion dynamique de données dans l'instruction mail, je
voulais dire que ce qu'avait saisi l'utilisateur dans le formulaire de contact allait
être repris par des variables $_POST pour composer mail($destinataire, $sujet, $contenu, $entete);
Je viens de faire qq essais 15 minutes après la création de SPF et déjà je n'ai plus
le message que j'avais écris pour avertir l'utilisateur que son mail ne nous était pas
parvenu, il y a du mieux...
Par contre dans l'entête du mail j'ai ça maintenant :
sh-184929988@eu.hosting-webspace.io

C'est quoi ce truc ?
Je viens donc d'appeler Ionos (mon hébergeur) et un technicien m'a aidé à créer un
enregistrement SPF dans mes paramètres DNS avec comme valeur :
v=spf1 include:_spf.perfora.net include:_spf.kundenserver.de ~all
Bref du Chinois pour moi...
Ce même technicien m'a expliqué que je n'aurai pas la possibilité chez Ionos d'avoir
un enregistrement DKIM, car pas de ça chez eux :-(
J'en ai profité pour modifier mon fichier envoi.php pour remplacer mon mail@nomdedomaine
par monmail@gmail.com car il m'a dit que le problème pouvait aussi venir de Google
et des adresses redirigées !
Il faut maintenant attendre 48h selon lui...
Quand je parlais d'insertion dynamique de données dans l'instruction mail, je
voulais dire que ce qu'avait saisi l'utilisateur dans le formulaire de contact allait
être repris par des variables $_POST pour composer mail($destinataire, $sujet, $contenu, $entete);
Je viens de faire qq essais 15 minutes après la création de SPF et déjà je n'ai plus
le message que j'avais écris pour avertir l'utilisateur que son mail ne nous était pas
parvenu, il y a du mieux...
Par contre dans l'entête du mail j'ai ça maintenant :
sh-184929988@eu.hosting-webspace.io

C'est quoi ce truc ?
Pour rappel mon $entete :
Quand je clique sur répondre, même avec sh-184929988@eu.hosting-webspace.io
la bonne adresse du client apparaît MAIS 2 fois ???
$entete= 'MIME-Version: 1.0' . "\r\n"; $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . $entete .= 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion();
Quand je clique sur répondre, même avec sh-184929988@eu.hosting-webspace.io
la bonne adresse du client apparaît MAIS 2 fois ???

Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le site https://www.mail-tester.com/ m'affiche ça maintenant que nous avons modifié
les paramètres avec le tech d'IONOS :
SPF check
1 SPF record found for the domain mondomaine.fr :
"v=spf1 include:_spf.perfora.net include:_spf.kundenserver.de ~all"
DKIM check
No DNS record found for default._domainkey.mondomaine.fr
Pour ce qui est des détails du message reçu en utilisant "Afficher l'original :
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of sh-184929988@eu.hosting-webspace.io designates 212.xxx.xxx.xxx as permitted sender) smtp.mailfrom=sh-184929988@eu.hosting-webspace.io
Received: from localhost ([xx.xxx.xx.xxx]) by mrelayeu.kundenserver.de (mreue009 [213.xxx.xx.xx]) with ESMTPSA (Nemesis) id 1Mwfj0-1nlGi140zq-00yB9F for <monmail@gmail.com>; Thu, 23 Jun 2022 11:17:48 +0200
From: sh-184929988@eu.hosting-webspace.io
Date: Thu, 23 Jun 2022 11:17:47 +0200
To: monmail@gmail.com
C'est qui ce : mrelayeu.kundenserver.de ?
As-tu essayé d'envoyer un message (normal, pas automatisé) à cette adresse?

As-tu testé avec le fichier envoi.php comme il était précédemment?
J'ai remis l'ancien fichier, avec le ReCaptcha v2 car étrangement le v3 n'empêchait
pas la validation du formulaire de contact avec tous les champs vide, mais ça c'est un autre problème....
J'ai simplement mis comme $destinataire monmail@gmail.com à la place de mail@nomdedomaine
les paramètres avec le tech d'IONOS :
SPF check
1 SPF record found for the domain mondomaine.fr :
"v=spf1 include:_spf.perfora.net include:_spf.kundenserver.de ~all"
DKIM check
No DNS record found for default._domainkey.mondomaine.fr
Pour ce qui est des détails du message reçu en utilisant "Afficher l'original :
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of sh-184929988@eu.hosting-webspace.io designates 212.xxx.xxx.xxx as permitted sender) smtp.mailfrom=sh-184929988@eu.hosting-webspace.io
Received: from localhost ([xx.xxx.xx.xxx]) by mrelayeu.kundenserver.de (mreue009 [213.xxx.xx.xx]) with ESMTPSA (Nemesis) id 1Mwfj0-1nlGi140zq-00yB9F for <monmail@gmail.com>; Thu, 23 Jun 2022 11:17:48 +0200
From: sh-184929988@eu.hosting-webspace.io
Date: Thu, 23 Jun 2022 11:17:47 +0200
To: monmail@gmail.com
C'est qui ce : mrelayeu.kundenserver.de ?
As-tu essayé d'envoyer un message (normal, pas automatisé) à cette adresse?

As-tu testé avec le fichier envoi.php comme il était précédemment?
J'ai remis l'ancien fichier, avec le ReCaptcha v2 car étrangement le v3 n'empêchait
pas la validation du formulaire de contact avec tous les champs vide, mais ça c'est un autre problème....
J'ai simplement mis comme $destinataire monmail@gmail.com à la place de mail@nomdedomaine
Oui, tout à fait, elles sont récupérées et traitées de cette façon :
//récupération PROPRE des variables AVANT de les utiliser $nom = !empty($_POST['nom']) ? $_POST['nom']: NULL; $prenom = !empty($_POST['prenom']) ? $_POST['prenom']: NULL; $email = !empty($_POST['email']) ? trim($_POST['email']): NULL; $telephone = !empty($_POST['telephone']) ? $_POST['telephone']: NULL; $text = !empty($_POST['text']) ? $_POST['text']: NULL; $_SESSION['nom'] = htmlspecialchars($nom); $_SESSION['prenom'] = htmlspecialchars($prenom); $_SESSION['email'] = htmlspecialchars($email); $_SESSION['telephone'] = htmlspecialchars($telephone); $_SESSION['text'] = htmlspecialchars($text); .../... if(check_token($_POST['g-recaptcha-response'],CLESECRETE)){ // LE CAPTCHA EST BON => C'est un humain $destinataire = "monadresse@gmail.com"; $sujet = "Formulaire de contact site Internet"; $contenu = "\nNom : $nom \nPrenom : $prenom \nTéléphone : $telephone \nE-mail : $email \nMessage : $text"; $entete= 'MIME-Version: 1.0' . "\r\n"; $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . $entete .= 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion(); if(mail($destinataire, $sujet, $contenu, $entete)){ $ligne1 = "Votre message a bien été envoyé, nous vous répondrons dans les meilleurs délais."; $ligne2 = "Vous allez être redirigé vers l'accueil, veuillez patienter..."; $h1 = "Envoi du message !"; }else{ $ligne1 = "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ EN MESURE DE RECEVOIR VOTRE MESSAGE." . '<br>' . "NOUS SOMMES DÉSOLÉS POUR CE DÉSAGRÉMENT"; $ligne2 = "MERCI D'UTILISER VOTRE LOGICIEL DE MESSAGERIE HABITUEL ET CETTE ADRESSE :" . '<br>' . '<b style="color:blue;"><a href="mailto:monadresse@gmail.com">monadresse@gmail.com</a></b><br>'; $h1 = "ERREUR"; } header('Refresh: 5; URL= index.php'); session_destroy(); } else { // C'est un robot ou le code de vérification est incorrect $ligne1 = "Désolé, votre code de vérification n'est pas correct..."; $ligne2 = "Vous allez être redirigé vers la page précédente, veuillez patienter..."; $h1 = "Erreur !";?> <script type="text/javascript"> window.setTimeout('history.back();', 4000); </script> <?php } ?>
Je viens de remplir une nouvelle fois le formulaire de contact pour générer un nouveau fichier
"message_origine.txt" dont voici le lien : https://www.cjoint.com/c/LFygTIKV1WC
J'ai vérifié que toute les adresses expéditeur étaient la bonne, je les ai remplacées à chaque fois
par adressePersoOK@gmail.com.
J'ai vérifié que toute les adresses destinataire étaient la bonne, je les ai remplacées à chaque fois
par adressedusiteOK@gmail.com.
Un echo de $entete donne :
Je te remercie du temps que tu consacres à m'aider !
"message_origine.txt" dont voici le lien : https://www.cjoint.com/c/LFygTIKV1WC
J'ai vérifié que toute les adresses expéditeur étaient la bonne, je les ai remplacées à chaque fois
par adressePersoOK@gmail.com.
J'ai vérifié que toute les adresses destinataire étaient la bonne, je les ai remplacées à chaque fois
par adressedusiteOK@gmail.com.
Un echo de $entete donne :
MIME-Version: 1.0 Reply-To:adressePersoOK@gmail.com Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 7bit X-Mailer:PHP/7.4.30From:MON_NOM_OK MIME-Version: 1.0 Reply-To:adressePersoOK@gmail.com Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 7bit X-Mailer:PHP/7.4.30
Je te remercie du temps que tu consacres à m'aider !
Ton entête est donc, visiblement, fortement incorrecte.
Ne remarques-tu pas que certains éléments y sont répétés?
Par ailleurs, tu peux voir ceci dans le fichier:
Il n'y a pas de passage à la ligne avant le "From", qui n'est donc pas pris en compte.
Je suspecte que tu as modifié ton code PHP sans tester et sans nous tenir au courant.
MIME-Version: 1.0 Reply-To:adressePersoOK@gmail.com Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 7bit X-Mailer:PHP/7.4.30From:MON_NOM_OK MIME-Version: 1.0 Reply-To:adressePersoOK@gmail.com Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed Content-Disposition: inline Content-Transfer-Encoding: 7bit X-Mailer:PHP/7.4.30
Ne remarques-tu pas que certains éléments y sont répétés?
Par ailleurs, tu peux voir ceci dans le fichier:
X-Mailer: PHP/7.4.30From:MON_NOM_OK <adressedusiteOK@gmail.com>
Il n'y a pas de passage à la ligne avant le "From", qui n'est donc pas pris en compte.
Je suspecte que tu as modifié ton code PHP sans tester et sans nous tenir au courant.
Ne remarques-tu pas que certains éléments y sont répétés?
Si bien sûr, je le mentionnait déjà en #16
Il n'y a pas de passage à la ligne avant le "From", qui n'est donc pas pris en compte.
Tu as raison, je viens de retrouver une sauvegarde et j'ai comparé les deux versions...
J'ai bien une erreur d’inattention à la deuxième ligne :
Mais bizarrement si j'écris :
$entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n"; avec un point virgule plutôt qu'un point,
j'ai systématiquement mon message d'erreur : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ ...
Je suspecte que tu as modifié ton code PHP sans tester et sans nous tenir au courant.
C'est exact, je travail aussi à la recherche de l'erreur et il est possible de poster des fichiers
du messageorigine.txt qui ne correspondent plus à mon php du post #1, je suis désolé de ne pas avoir prévenu !
D'ailleurs mon erreur inattention date du #10 quand j'ai neutralisé la ligne qui posait problème
en ajoutant un // et un $entete.= à la ligne suivante sans remettre tout en place après mon test !
$entete .='From: webmaster@example.com' . "\r\n"; // <= ÇA FONCTIONNE
//ICI ÇA PLANTE => // $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" .
$entete .= 'Reply-To:' . $email . "\r\n" .
EDIT: J'ai aussi, selon les conseil du tech Ionos utilisé :
$destinataire = adressedusite@gmail.com plutôt que
$destinataire =contact@nomdedomaine.fr car il m'a dit que le problème pouvait venir avec Google et les redirections !
Si bien sûr, je le mentionnait déjà en #16
Il n'y a pas de passage à la ligne avant le "From", qui n'est donc pas pris en compte.
Tu as raison, je viens de retrouver une sauvegarde et j'ai comparé les deux versions...
J'ai bien une erreur d’inattention à la deuxième ligne :
$entete= 'MIME-Version: 1.0' . "\r\n"; $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . $entete .= 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion();
Mais bizarrement si j'écris :
$entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n"; avec un point virgule plutôt qu'un point,
j'ai systématiquement mon message d'erreur : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ ...
Je suspecte que tu as modifié ton code PHP sans tester et sans nous tenir au courant.
C'est exact, je travail aussi à la recherche de l'erreur et il est possible de poster des fichiers
du messageorigine.txt qui ne correspondent plus à mon php du post #1, je suis désolé de ne pas avoir prévenu !
D'ailleurs mon erreur inattention date du #10 quand j'ai neutralisé la ligne qui posait problème
en ajoutant un // et un $entete.= à la ligne suivante sans remettre tout en place après mon test !
$entete .='From: webmaster@example.com' . "\r\n"; // <= ÇA FONCTIONNE
//ICI ÇA PLANTE => // $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" .
$entete .= 'Reply-To:' . $email . "\r\n" .
EDIT: J'ai aussi, selon les conseil du tech Ionos utilisé :
$destinataire = adressedusite@gmail.com plutôt que
$destinataire =contact@nomdedomaine.fr car il m'a dit que le problème pouvait venir avec Google et les redirections !
Si j'écris la syntaxe de mon post #0 :
J'ai toujours le message : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ ..."
Si j'écris une entête fortement incorrecte :
Le message part, j'ai l'avertissement "Votre message a bien été envoyé, nous vous répondrons...."
et il arrive dans ma boite Gmail avec l'expéditeur sh-184929988@eu.hosting-webspace.io !!!!
C'est un truc de dingue !
$entete= 'MIME-Version: 1.0' . "\r\n"; $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion();
J'ai toujours le message : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ ..."
Si j'écris une entête fortement incorrecte :
$entete= 'MIME-Version: 1.0' . "\r\n"; $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . // <----------- ? ? ? $entete .= 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion();
Le message part, j'ai l'avertissement "Votre message a bien été envoyé, nous vous répondrons...."
et il arrive dans ma boite Gmail avec l'expéditeur sh-184929988@eu.hosting-webspace.io !!!!
C'est un truc de dingue !
Il est important, pour chaque cas testé, que tu montres ton code php en lien avec le contenu de $entete, et, le cas échéant, le contenu de "afficher l'original".
En fait, tout cela me semble logique:
- soit ton code crée une entête correcte avec en From une adresse email usurpée, et l'envoi est refusé, pour tentative d'usurpation.
- soit ton code créé une entête (accidentellement) sans adresse en From, et l'envoi est accepté. Comme tu n'as pas spécifié d'adresse From, une adresse "bidon" semble être utilisée comme adresse From, et c'est probablement une adresse non usurpée, parce c'est une adresse dans le domaine de ton hébergeur.
As-tu essayé de créer une entête correcte avec en From une adresse email de ton domaine (celui dont tu as configuré le DNS avec du SPF)? Cela me semble la seule approche correcte.
En fait, tout cela me semble logique:
- soit ton code crée une entête correcte avec en From une adresse email usurpée, et l'envoi est refusé, pour tentative d'usurpation.
- soit ton code créé une entête (accidentellement) sans adresse en From, et l'envoi est accepté. Comme tu n'as pas spécifié d'adresse From, une adresse "bidon" semble être utilisée comme adresse From, et c'est probablement une adresse non usurpée, parce c'est une adresse dans le domaine de ton hébergeur.
As-tu essayé de créer une entête correcte avec en From une adresse email de ton domaine (celui dont tu as configuré le DNS avec du SPF)? Cela me semble la seule approche correcte.
Je veux bien utiliser une entête correcte en m'aidant du code php.net :
Mais comment insérer là dedans les données dynamiques du formulaire contact
sans risquer un message d'erreur : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ ..."
Je ne suis qd même pas le seul à avoir un formulaire de contact sur son site, et comment
expliquer que la page contact.php et envoi.php fonctionnent parfaitement depuis
deux ans et que d'un coup, plus rien sans aucun information de Google, Gmail ou
d'explication de Ionos ?
PS: Je suis désolé si mes différentes manip font perdre du temps aux personnes qui veulent m'aider...
<?php $to = 'personne@example.com'; $subject = 'le sujet'; $message = 'Bonjour !'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>
Mais comment insérer là dedans les données dynamiques du formulaire contact
sans risquer un message d'erreur : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ ..."
Je ne suis qd même pas le seul à avoir un formulaire de contact sur son site, et comment
expliquer que la page contact.php et envoi.php fonctionnent parfaitement depuis
deux ans et que d'un coup, plus rien sans aucun information de Google, Gmail ou
d'explication de Ionos ?
PS: Je suis désolé si mes différentes manip font perdre du temps aux personnes qui veulent m'aider...
Bon ça bouge...
Ça, ça fonctionne, presque !
Sauf que c'est crade :
- Dans From, il faut absolument une adresse mail, si je mets $nom, c'est mort, j'ai le message
d'erreur
- Du coup, le message arrive avec comme expéditeur le nom qui précède l'@ dans l'adresse mail
(ex test pour test@test.fr) de cette forme : test@test.fr via eu.hosting-webspace.io
- Le corps du message est sur une seule ligne :
Nom : TOTOPrenom : TitiTéléphone : 0108091011E-mail : test@test.frMessage : Le paramètre additional_params peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.
(EDIT : Le retour à la ligne avec . "\r\n" . fonctionnent, il faut simplement ne pas les oublier)
Ça, ça fonctionne, presque !
$decode = json_decode(file_get_contents($api_url), true); if ($decode['success'] == true) { // LE CAPTCHA EST BON => C'est un humain $to = 'adressedusite@gmail.com'; $subject = 'Formulaire de contact site Internet'; $message = 'Nom : ' . $nom . 'Prenom : ' . $prenom . 'Téléphone : ' . $telephone . 'E-mail : ' . $email . 'Message : ' . $text; $headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)) {
Sauf que c'est crade :
- Dans From, il faut absolument une adresse mail, si je mets $nom, c'est mort, j'ai le message
d'erreur
- Du coup, le message arrive avec comme expéditeur le nom qui précède l'@ dans l'adresse mail
(ex test pour test@test.fr) de cette forme : test@test.fr via eu.hosting-webspace.io
- Le corps du message est sur une seule ligne :
Nom : TOTOPrenom : TitiTéléphone : 0108091011E-mail : test@test.frMessage : Le paramètre additional_params peut être utilisé pour passer un paramètre additionnel au programme configuré à être utilisé pour envoyer les mails en utilisant sendmail_path.
(EDIT : Le retour à la ligne avec . "\r\n" . fonctionnent, il faut simplement ne pas les oublier)
J'y suis presque avec cette syntaxe :
Par contre, je n'arrive pas à écrire le code qui permettrait d'avoir le nom du client plutôt que son
mail qui s'affiche :
('From: Anniversaire <anniversaire@example.com>'; source php.net)

EDIT : J'ai vérifié l'historique de mes emails et les premiers via eu.hosting-webspace.io apparaissent en
mars 2021, avant j'avais NOMDUCLIENT adressemailduclient@gmail.com
$to = 'adressedusite@gmail.com'; $subject = 'Formulaire de contact site Internet'; $message = 'Nom : ' . $nom . "\r\n" . 'Prenom : ' . $prenom . "\r\n" . 'Téléphone : ' . $telephone . "\r\n" . 'E-mail : ' . $email . "\r\n" . 'Message : ' . "\r\n" . $text; $headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
Par contre, je n'arrive pas à écrire le code qui permettrait d'avoir le nom du client plutôt que son
mail qui s'affiche :
('From: Anniversaire <anniversaire@example.com>'; source php.net)

EDIT : J'ai vérifié l'historique de mes emails et les premiers via eu.hosting-webspace.io apparaissent en
mars 2021, avant j'avais NOMDUCLIENT adressemailduclient@gmail.com
Il est important, pour chaque scenario, que tu montres (en partageant du texte et pas des images):
- ton code php,
- le contenu de la variable $entete,
- le contenu de "afficher l'original"
Sans ces éléments, nous ne pouvons pas t'aider.
Bien que tu ne l'écrives pas, je suppose que nous pouvons, chaque fois, ignorer toutes tes questions sauf la dernière.
- ton code php,
- le contenu de la variable $entete,
- le contenu de "afficher l'original"
Sans ces éléments, nous ne pouvons pas t'aider.
Bien que tu ne l'écrives pas, je suppose que nous pouvons, chaque fois, ignorer toutes tes questions sauf la dernière.
Les images c'était pour être plus clair... sorry
J'ai fait différents essais en tenant compte des remarques sur ce post et des recherches
faites sur Internet.
Le résultat actuel me convient presque : en effet tout est revenu comme avant excepté le
fait que l'expéditeur apparaît sous la forme de son adresse mail sans l'@ et le fournisseur
internet (ex martin.rene récupéré dans martin.rene@free.fr - J'aimerai plutôt René MARTIN).
Voici mon envoi.php
Le txt de afficher l'original de mon code actuel :
https://www.cjoint.com/c/LFCmqCWgsTC
Et l'echo de $headers :
From: martin.rene@free.fr Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
Doc PHP.NET:
From: Anniversaire <anniversaire@example.com>
C'est cette ligne que je n'arrive pas à intégrer de manière dynamique dans mon code
J'ai fait différents essais en tenant compte des remarques sur ce post et des recherches
faites sur Internet.
Le résultat actuel me convient presque : en effet tout est revenu comme avant excepté le
fait que l'expéditeur apparaît sous la forme de son adresse mail sans l'@ et le fournisseur
internet (ex martin.rene récupéré dans martin.rene@free.fr - J'aimerai plutôt René MARTIN).
Voici mon envoi.php
if ($decode['success'] == true) { // LE CAPTCHA EST BON => C'est un humain $to = 'adressedusite@gmail.com'; $subject = 'Formulaire de contact site Internet'; $message = 'Nom : ' . $nom . "\r\n" . 'Prenom : ' . $prenom . "\r\n" . 'Téléphone : ' . $telephone . "\r\n" . 'E-mail : ' . $email . "\r\n" . 'Message : ' . "\r\n" . $text; $headers = 'From: ' . $email . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)) { $ligne1 = "Votre message a bien été envoyé, nous vous répondrons dans les meilleurs délais."; $ligne2 = "Vous allez être redirigé vers l'accueil, veuillez patienter..."; $h1 = "Envoi du message !"; }else{ $ligne1 = "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ EN MESURE DE RECEVOIR VOTRE MESSAGE." . '<br>' . "NOUS SOMMES DÉSOLÉS POUR CE DÉSAGRÉMENT"; $ligne2 = "MERCI D'UTILISER VOTRE LOGICIEL DE MESSAGERIE HABITUEL ET CETTE ADRESSE :" . '<br>' . '<b style="color:blue;"><a href="mailto:adressedusite@gmail.com">adressedusite@gmail.com</a></b><br>'; $h1 = "ERREUR"; } header('Refresh: 5; URL= index.php'); session_destroy(); }
Le txt de afficher l'original de mon code actuel :
https://www.cjoint.com/c/LFCmqCWgsTC
Et l'echo de $headers :
From: martin.rene@free.fr Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
Doc PHP.NET:
From: Anniversaire <anniversaire@example.com>
C'est cette ligne que je n'arrive pas à intégrer de manière dynamique dans mon code
Ta syntaxe fonctionne impeccablement bien, j'ai en effet le Prénom puis le NOM qui apparaît
comme expéditeur dans mon Gmail !
Rene MARTIN martin.rene@free.fr via eu.hosting-webspace.io
Par contre, ma syntaxe ne fonctionne pas !
Je remplis le formulaire, je valide le Recaptcha v2, j'ai le message qui me dit que
ma demande a bien été prise en compte mais mon Gmail (y compris les SPAMs)
restent désespérément vide !
Qu'est-ce que j'ai loupé ?
EDIT : même avec un espace après les deux points du 'From: '
ou comme ça :
$headers = 'From:' . ' ' . $prenom . ' ' . $nom .....
comme expéditeur dans mon Gmail !
Rene MARTIN martin.rene@free.fr via eu.hosting-webspace.io
Par contre, ma syntaxe ne fonctionne pas !
Je remplis le formulaire, je valide le Recaptcha v2, j'ai le message qui me dit que
ma demande a bien été prise en compte mais mon Gmail (y compris les SPAMs)
restent désespérément vide !
$headers = 'From:' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
Qu'est-ce que j'ai loupé ?
EDIT : même avec un espace après les deux points du 'From: '
ou comme ça :
$headers = 'From:' . ' ' . $prenom . ' ' . $nom .....
Comme le mail n'arrive pas, je ne peux pas te montrer d'original....
Sinon, mon code php :
et l'echo $headers;
From: David SCHMURTZ Reply-To: david.schmurtz@aol.com X-Mailer: PHP/7.4.30
Sinon, mon code php :
if ($decode['success'] == true) { // LE CAPTCHA EST BON => C'est un humain $to = 'adressedusite@gmail.com'; $subject = 'Formulaire de contact site Internet'; $message = 'Nom : ' . $nom . "\r\n" . 'Prenom : ' . $prenom . "\r\n" . 'Téléphone : ' . $telephone . "\r\n" . 'E-mail : ' . $email . "\r\n" . 'Message : ' . "\r\n" . $text; $headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion();
et l'echo $headers;
From: David SCHMURTZ Reply-To: david.schmurtz@aol.com X-Mailer: PHP/7.4.30
Désolé, j'ai pas fait gaffe aux caractères spéciaux... Du coup l'echo $headers =
From: David SCHMURTZ <david.schmurtz@aol.com> Reply-To: david.schmurtz@aol.com X-Mailer: PHP/7.4.30
Toujours rien dans la boite Gmail !
(Pour le nom du formulaire c'est parce qu'à force de faire 600 essais le ReCaptcha me demande de valider
des passages cloutés)
From: David SCHMURTZ <david.schmurtz@aol.com> Reply-To: david.schmurtz@aol.com X-Mailer: PHP/7.4.30
Toujours rien dans la boite Gmail !
(Pour le nom du formulaire c'est parce qu'à force de faire 600 essais le ReCaptcha me demande de valider
des passages cloutés)
if ($decode['success'] == true) { // LE CAPTCHA EST BON => C'est un humain $to = 'adressedusite@gmail.com'; $subject = 'Formulaire de contact site Internet'; $message = 'Nom : ' . $nom . "\r\n" . 'Prenom : ' . $prenom . "\r\n" . 'Téléphone : ' . $telephone . "\r\n" . 'E-mail : ' . $email . "\r\n" . 'Message : ' . "\r\n" . $text; $headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion(); if(mail($to, $subject, $message, $headers)) { $ligne1 = "Votre message a bien été envoyé, nous vous répondrons dans les meilleurs délais."; $ligne2 = "Vous allez être redirigé vers l'accueil, veuillez patienter..."; $h1 = "Envoi du message !"; }else{ $ligne1 = "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ EN MESURE DE RECEVOIR VOTRE MESSAGE." . '<br>' . "NOUS SOMMES DÉSOLÉS POUR CE DÉSAGRÉMENT"; $ligne2 = "MERCI D'UTILISER VOTRE LOGICIEL DE MESSAGERIE HABITUEL ET CETTE ADRESSE :" . '<br>' . '<b style="color:blue;"><a href="mailto:adressedusite@gmail.com">adressedusite@gmail.com</a></b><br>'; $h1 = "ERREUR"; } header('Refresh: 5; URL= index.php'); session_destroy(); }
Pourquoi ne continues-tu pas à tester avec
Si tu changes plusieurs éléments en même temps, comment peux-tu espérer comprendre ce qui fonctionne et ce qui ne fonctionne pas?
Comme déjà écrit, je pense que tu devrais changer d'approche, et renoncer à utiliser en "from" des adresses dont tu n'es pas propriétaire. Je pense que ces usurpations seront, au fil du temps, de moins en moins tolérées.
martin.rene@free.fr?
Si tu changes plusieurs éléments en même temps, comment peux-tu espérer comprendre ce qui fonctionne et ce qui ne fonctionne pas?
Comme déjà écrit, je pense que tu devrais changer d'approche, et renoncer à utiliser en "from" des adresses dont tu n'es pas propriétaire. Je pense que ces usurpations seront, au fil du temps, de moins en moins tolérées.
je ne comprends pas bien...
Je ne cherche pas à usurper des adresses mails, je voudrais simplement que l'adresse du client arrive comme un commentaire dans le corps de l'email sur mon Gmail pour que je puisse lui répondre, comme le font la plupart des formulaires de contact que nous remplissons tous les jours...
Je ne cherche pas à usurper des adresses mails, je voudrais simplement que l'adresse du client arrive comme un commentaire dans le corps de l'email sur mon Gmail pour que je puisse lui répondre, comme le font la plupart des formulaires de contact que nous remplissons tous les jours...
Je viens de remettre en place le code de #41 pour que les clients puissent nous envoyer
quand même des mails, même si le prénom et le nom n'apparaissent pas et je viens de me
rendre compte que si les mails n'arrivaient pas c'est parce que à force de chercher dans
tous les sens, j'avais laissé :
$to = 'adressedusite@gmail.com';
J'ai donc mis la bonne adresse mail dans $to et le code du #47 et j'ai testé :
J'ai le message : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ..."
et toujours rien dans Gmail bien évidement !
En résumé :
Ton code
$headers = 'From: Rene MARTIN <martin.rene@free.fr>' . "\r\n" .
FONCTIONNE
Mon code :
$headers = 'From: ' . $email . "\r\n" .
FONCTIONNE
Et toutes les tentatives de bidouilles du $header :
$headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
NE FONCTIONNENT PAS
quand même des mails, même si le prénom et le nom n'apparaissent pas et je viens de me
rendre compte que si les mails n'arrivaient pas c'est parce que à force de chercher dans
tous les sens, j'avais laissé :
$to = 'adressedusite@gmail.com';
J'ai donc mis la bonne adresse mail dans $to et le code du #47 et j'ai testé :
J'ai le message : "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ..."
et toujours rien dans Gmail bien évidement !
En résumé :
Ton code
$headers = 'From: Rene MARTIN <martin.rene@free.fr>' . "\r\n" .
FONCTIONNE
Mon code :
$headers = 'From: ' . $email . "\r\n" .
FONCTIONNE
Et toutes les tentatives de bidouilles du $header :
$headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" .
'Reply-To: ' . $email . "\r\n" .
NE FONCTIONNENT PAS
Avec ton code :
$headers = 'From: Rene MARTIN <martin.rene@free.fr>' . "\r\n" .
'Reply-To: martin.rene@free.fr' . "\r\n" .
L'email arrive comme ça :
Rene MARTIN martin.rene@free.fr via eu.hosting-webspace.io
$headers = 'From: Rene MARTIN <martin.rene@free.fr>' . "\r\n" .
'Reply-To: martin.rene@free.fr' . "\r\n" .
L'email arrive comme ça :
Rene MARTIN martin.rene@free.fr via eu.hosting-webspace.io
Si c'est bon, l'email arrive dans Gmail avec l'entête bien propre...
(Prénom NOM mail@fournisseur)
Mais évidemment les données ne sont pas dynamiques !
Ce qui est incroyable c'est de ne pas arriver (autorisation ?) à écrire la même chose avec les données
issues du formulaire !
Dès que je tente un
$headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" .
j'ai systématiquement :
"SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ..."
(Prénom NOM mail@fournisseur)
Mais évidemment les données ne sont pas dynamiques !
Ce qui est incroyable c'est de ne pas arriver (autorisation ?) à écrire la même chose avec les données
issues du formulaire !
Dès que je tente un
$headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" .
j'ai systématiquement :
"SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ..."
Incroyable, en effet.
Creusons cela.
Peux-tu essayer ainsi?
Creusons cela.
Peux-tu essayer ainsi?
$prenom="Rene"; $nom="MARTIN"; $email="martin.rene@free.fr"; $headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion(); echo "<br>headers: "; echo htmlspecialchars($headers); echo "<br>";
Bonjour,
Je n'ai pas lu l'entièreté de cette (longue) conversation, peut-être que cela a déjà été dit :
Certains hébergeurs peuvent restreindre les adresses pouvant être utilisées dans le champ SMTP "From".
Les serveurs de ton hébergeur ne sont pas autorisés par les propriétaires des domaines free.fr, gmail.com ou tout autre domaine tiers à envoyer des courriels en utilisant ces domaines. De ce fait, les destinataires recevant des courriels "From: user@free.fr" depuis ton hébergeur pourraient assimiler cela à une usurpation et nuire à la réputation de l'IP. Afin d'éviter cela, certains hébergeurs permettent l'envoi de courriels seulement si le champ "From" contient une adresse liée à un domaine configuré sur l'hébergement.
Il est donc important de préciser une adresse liée à un domaine configuré sur ton hébergement dans le champ "From". Il ne faut surtout pas utiliser l'adresse renseignée par le visiteur. Tu peux placer l'adresse du visiteur en Reply-to.
Je vois aussi qu'il est mentionné SPF et DKIM dans cette conversation. Ces deux protocoles permettent au destinataire de vérifier si le courriel a été envoyé par un serveur autorisé par le titulaire du domaine. Cela concerne le filtre antispam du destinataire, et non l'envoi.
Je n'ai pas lu l'entièreté de cette (longue) conversation, peut-être que cela a déjà été dit :
Certains hébergeurs peuvent restreindre les adresses pouvant être utilisées dans le champ SMTP "From".
Les serveurs de ton hébergeur ne sont pas autorisés par les propriétaires des domaines free.fr, gmail.com ou tout autre domaine tiers à envoyer des courriels en utilisant ces domaines. De ce fait, les destinataires recevant des courriels "From: user@free.fr" depuis ton hébergeur pourraient assimiler cela à une usurpation et nuire à la réputation de l'IP. Afin d'éviter cela, certains hébergeurs permettent l'envoi de courriels seulement si le champ "From" contient une adresse liée à un domaine configuré sur l'hébergement.
Il est donc important de préciser une adresse liée à un domaine configuré sur ton hébergement dans le champ "From". Il ne faut surtout pas utiliser l'adresse renseignée par le visiteur. Tu peux placer l'adresse du visiteur en Reply-to.
Je vois aussi qu'il est mentionné SPF et DKIM dans cette conversation. Ces deux protocoles permettent au destinataire de vérifier si le courriel a été envoyé par un serveur autorisé par le titulaire du domaine. Cela concerne le filtre antispam du destinataire, et non l'envoi.
Merci pour toutes ces précisions avion-f16
Je viens de remplacer le champs dynamique $email par
une donnée statique qui est mon adresse Gmail (forme : adressedemonsite@gmail.com)
Du coup, l'expéditeur affiché dans Gmail est :
moi
L'entête :
adressedemonsite@gmail.com via eu.hosting-webspace.io
Et dans ma boite Gmail j'ai ça en haut de message :
Traitez ce message avec prudence
Ce message peut être usurpé. Le message prétend avoir été envoyé à partir de votre compte, mais Gmail n'a pas pu en vérifier la véritable source...
Je viens de remplacer le champs dynamique $email par
une donnée statique qui est mon adresse Gmail (forme : adressedemonsite@gmail.com)
Du coup, l'expéditeur affiché dans Gmail est :
moi
L'entête :
adressedemonsite@gmail.com via eu.hosting-webspace.io
Et dans ma boite Gmail j'ai ça en haut de message :
Traitez ce message avec prudence
Ce message peut être usurpé. Le message prétend avoir été envoyé à partir de votre compte, mais Gmail n'a pas pu en vérifier la véritable source...
Tu dis : "Afin d'éviter cela, certains hébergeurs permettent l'envoi de courriels seulement si le champ "From" contient une adresse liée à un domaine configuré sur l'hébergement."
Si je modifie mon code pour indiquer en From: contact@mondomaine.fr mon
message ne part pas !
headers: From: René MARTIN <contact@mondomaine.fr> Reply-To: martin.rene@free.fr Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
Si je modifie mon code pour indiquer en From: contact@mondomaine.fr mon
message ne part pas !
headers: From: René MARTIN <contact@mondomaine.fr> Reply-To: martin.rene@free.fr Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
Juste pour info et déjà indiqué dès le post #1
SI J'UTILISE FIREFOX :
Et que je remette tout le code en place comme avant la panne, ça fonctionne !
1. J'indique $to = "contact@mondomaine.fr"
j'ai MARTIN dans la liste des messages (bizarrement je n'ai plus le prénom !)
J'ai MARTIN via eu.hosting-webspace.io (bizarrement je n'ai plus le prénom !)
Et le corps du message correct
2. J'indique $to = "adressedemonsite@gmail.com"
J'ai moi dans la liste des messages
J'ai MARTIN via eu.hosting-webspace.io en ouvrant le mail (Toujours pas de prénom)
et en dessous :
Ce message peut être usurpé. Le message prétend avoir été envoyé... bla bla bla
Code avant la panne et qui fonctionne avec FIREFOX ! ! !
D'ailleurs, on voit bien que ce code d'origine utilise $destinataire dans le From (ligne 8) au lieu
de $email qui serait plus logique !
Afficher l'original : https://www.cjoint.com/c/LFEmt0OmCGC
SI J'UTILISE FIREFOX :
Et que je remette tout le code en place comme avant la panne, ça fonctionne !
1. J'indique $to = "contact@mondomaine.fr"
j'ai MARTIN dans la liste des messages (bizarrement je n'ai plus le prénom !)
J'ai MARTIN via eu.hosting-webspace.io (bizarrement je n'ai plus le prénom !)
Et le corps du message correct
2. J'indique $to = "adressedemonsite@gmail.com"
J'ai moi dans la liste des messages
J'ai MARTIN via eu.hosting-webspace.io en ouvrant le mail (Toujours pas de prénom)
et en dessous :
Ce message peut être usurpé. Le message prétend avoir été envoyé... bla bla bla
Code avant la panne et qui fonctionne avec FIREFOX ! ! !
$decode = json_decode(file_get_contents($api_url), true); if ($decode['success'] == true) { // LE CAPTCHA EST BON => C'est un humain $destinataire = "contact@mondomaine.fr"; $sujet = "Formulaire de contact site Internet"; $contenu = "\nNom : $nom \nPrenom : $prenom \nTéléphone : $telephone \nE-mail : $email \nMessage : $text"; $entete= 'MIME-Version: 1.0' . "\r\n"; $entete .= 'From:'.$nom.' <'.$destinataire.'>' . "\r\n" . 'Reply-To:'.$email. "\r\n" . 'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" . 'Content-Disposition: inline'. "\r\n" . 'Content-Transfer-Encoding: 7bit'." \r\n" . 'X-Mailer:PHP/'.phpversion(); if(mail($destinataire, $sujet, $contenu, $entete)){ $ligne1 = "Votre message a bien été envoyé, nous vous répondrons dans les meilleurs délais."; $ligne2 = "Vous allez être redirigé vers l'accueil, veuillez patienter..."; $h1 = "Envoi du message !"; }else{ $ligne1 = "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ EN MESURE DE RECEVOIR VOTRE MESSAGE." . '<br>' . "NOUS SOMMES DÉSOLÉS POUR CE DÉSAGRÉMENT"; $ligne2 = "MERCI D'UTILISER VOTRE LOGICIEL DE MESSAGERIE HABITUEL ET CETTE ADRESSE :" . '<br>' . '<b style="color:blue;"><a href="mailto:contact@mondomaine.fr">contact@mondomaine.fr</a></b><br>'; $h1 = "ERREUR"; } header('Refresh: 5; URL= index.php'); session_destroy(); }
D'ailleurs, on voit bien que ce code d'origine utilise $destinataire dans le From (ligne 8) au lieu
de $email qui serait plus logique !
Afficher l'original : https://www.cjoint.com/c/LFEmt0OmCGC
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Si le #60 est la réponse au #59, nous avons donc bien un header "bidouillé", construit à partir de variables, et cela fonctionne bien.
Es-tu d'accord?
Je me trompe, où tu as évité de partager avec nous le résultat de
Je ne vois non plus le code PHP qui alimente les variables $prenom, $nom et $email, ni, d'ailleurs le contenu de ces variables.
Es-tu d'accord?
Je me trompe, où tu as évité de partager avec nous le résultat de
echo htmlspecialchars($headers);dans les cas de "PROBLÈME TECHNIQUE MOMENTANÉ"?
Je ne vois non plus le code PHP qui alimente les variables $prenom, $nom et $email, ni, d'ailleurs le contenu de ces variables.
Pour qu'il y ait un "PROBLÈME TECHNIQUE MOMENTANÉ" il ne faut pas que j'utilise
ton code "bidouillé" qui fonctionne, sinon je n'ai pas ce message bien évidemment !
J'ai donc utilisé ce code
$headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" .
echo htmlspecialchars($headers) donne :
headers: From: René MARTIN <martin.rene@free.fr> Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
ton code "bidouillé" qui fonctionne, sinon je n'ai pas ce message bien évidemment !
J'ai donc utilisé ce code
$headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" .
echo htmlspecialchars($headers) donne :
headers: From: René MARTIN <martin.rene@free.fr> Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
<?php session_start(); /*//affichage des erreurs php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); */ //récupération PROPRE des variables AVANT de les utiliser $nom = !empty($_POST['nom']) ? $_POST['nom']: NULL; $prenom = !empty($_POST['prenom']) ? $_POST['prenom']: NULL; $email = !empty($_POST['email']) ? trim($_POST['email']): NULL; $telephone = !empty($_POST['telephone']) ? $_POST['telephone']: NULL; $text = !empty($_POST['text']) ? $_POST['text']: NULL; $_SESSION['nom'] = htmlspecialchars($nom); $_SESSION['prenom'] = htmlspecialchars($prenom); $_SESSION['email'] = htmlspecialchars($email); $_SESSION['telephone'] = htmlspecialchars($telephone); $_SESSION['text'] = htmlspecialchars($text); // Ma clé privée $secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // Paramètre renvoyé par le recaptcha $response = $_POST['g-recaptcha-response']; $api_url = "https://www.google.com/recaptcha/api/siteverify?secret=" . $secret . "&response=" . $response . "&remoteip=" . $remoteip; $decode = json_decode(file_get_contents($api_url), true); if ($decode['success'] == true) { // LE CAPTCHA EST BON => C'est un humain $destinataire = "adressedusite@gmail.com"; $sujet = "Formulaire de contact site Internet"; $contenu = "\nNom : $nom \nPrenom : $prenom \nTéléphone : $telephone \nE-mail : $email \nMessage : $text"; $prenom="Rene"; $nom="MARTIN"; $email="martin.rene@free.fr"; $headers = 'From:' . ' ' . $prenom . ' ' . $nom . ' ' . '<' . $email . '>' . "\r\n" . 'Reply-To: ' . $email . "\r\n" . 'X-Mailer: PHP/' . phpversion(); echo "<br>headers: "; echo htmlspecialchars($headers); echo "<br>"; if(mail($destinataire, $sujet, $contenu, $headers)){ $ligne1 = "Votre message a bien été envoyé, nous vous répondrons dans les meilleurs délais."; $ligne2 = "Vous allez être redirigé vers l'accueil, veuillez patienter..."; $h1 = "Envoi du message !"; }else{ $ligne1 = "SUITE A UN PROBLÈME TECHNIQUE MOMENTANÉ NOUS N'AVONS PAS ÉTÉ EN MESURE DE RECEVOIR VOTRE MESSAGE." . '<br>' . "NOUS SOMMES DÉSOLÉS POUR CE DÉSAGRÉMENT"; $ligne2 = "MERCI D'UTILISER VOTRE LOGICIEL DE MESSAGERIE HABITUEL ET CETTE ADRESSE :" . '<br>' . '<b style="color:blue;"><a href="mailto:adressedusite@gmail.com">adressedusite@gmail.com</a></b><br>'; $h1 = "ERREUR"; } //header('Refresh: 5; URL= index.php'); //session_destroy(); } else { // C'est un robot ou le code de vérification est incorrect $ligne1 = "Désolé, votre code de vérification n'est pas correct..."; $ligne2 = "Vous allez être redirigé vers la page précédente, veuillez patienter..."; $h1 = "Erreur !";?> <script type="text/javascript"> window.setTimeout('history.back();', 4000); </script> <?php }
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
Et sans accent dans le prénom?
Sans accent, le mail part, arrive bien dans Gmail...
L'echo :
headers: From: Rene MARTIN <contact@mon nomdedomaine.fr> Reply-To: martin.rene@free.fr Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
Dans le listing des messages j'ai bien
Rene MARTIN et qd j'ouvre le mail j'ai : Rene MARTIN via eu.hosting-webspace.io
En fait, toutes ces infos sont contenues dans ton $header bidouillé !
J'ai l'impression que je vais laisser tomber, je ne trouve aucune solution, même sur des
sites étrangers... Certains types sont dans le même cas que moi, et cela depuis 3 ans !
https://stackoverflow.com/questions/56721239/concatenating-php-mail-header-with-dynamic-email-from-post
:-)
L'echo :
headers: From: Rene MARTIN <contact@mon nomdedomaine.fr> Reply-To: martin.rene@free.fr Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
Dans le listing des messages j'ai bien
Rene MARTIN et qd j'ouvre le mail j'ai : Rene MARTIN via eu.hosting-webspace.io
En fait, toutes ces infos sont contenues dans ton $header bidouillé !
J'ai l'impression que je vais laisser tomber, je ne trouve aucune solution, même sur des
sites étrangers... Certains types sont dans le même cas que moi, et cela depuis 3 ans !
https://stackoverflow.com/questions/56721239/concatenating-php-mail-header-with-dynamic-email-from-post
:-)
Et ça, j'y comprends pas grand chose sur la class php mailer mais ce ne serait pas une piste ?
https://stackoverflow.com/questions/27461109/php-mail-function-with-variables-how
https://stackoverflow.com/questions/27461109/php-mail-function-with-variables-how