Chrome refuse l'envoi de mail

Fermé
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 15 juin 2022 à 16:17
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 - 30 juin 2022 à 19:18
Bonjour à tous,

Depuis de années, sur mon site Internet la page contact fonctionne parfaitement :
l'utilisateur remplit 3 ou 4 champs classiques, valide un reCAPTCHA v2 puis le mail
atterrit dans mon Gmail... Ça c'était avant !

Depuis quelques jours des utilisateurs se sont plaint que nous ne répondions pas à leur
mail envoyés depuis le site alors que nous en recevions encore qq uns par ce biais...

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é !

J'ai essayé aujourd'hui reCAPTCHA v3 mais j'ai le même problème...

J'ai l'impression que mon problème vient de traitement de l'entête par CHROME,
car quand je vire $entete du traitement de la condition, le problème disparaît !


Voici mon code :

if(check_token($_POST['g-recaptcha-response'],CLESECRETE)){ // LE CAPTCHA EST BON => C'est un humain
    $destinataire = "contact@tests.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@tests.fr">contact@tests.fr</a></b><br>';
        $h1 = "ERREUR";
    }
    header('Refresh: 5; URL= index.php');
    session_destroy();
} 



Merci d'avance pour votre aide !



Configuration: Linux / Chrome 102.0.0.0
A voir également:

19 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
15 juin 2022 à 17:05
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 )

0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
15 juin 2022 à 17:15
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 :
if(mail($destinataire, $sujet, $contenu)){//, $entete)){



Du coup les mails arrivent MAIS avec ça en entête : sh-184929988@eu.hosting-webspace.io
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
15 juin 2022 à 18:47
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
Modifié le 15 juin 2022 à 20:58
Tu as raison c'est le From qui fait planter : (2° ligne)

$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
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
15 juin 2022 à 21:06
Ç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();
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
Modifié le 15 juin 2022 à 19:48
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 ?

0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
15 juin 2022 à 19:00
Salut Nhenry ..
Dans son premier message il a indiqué :

Après quelques tests, j'ai constaté qu'avec Firefox, il n'y avait aucun problème,


Mais vu l'erreur... et où elle se trouve.. je ne vois pas en quoi le navigateur peut intervenir...
0
jag72 Messages postés 15491 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 27 janvier 2024 2 758
15 juin 2022 à 19:03
Bonjour Henry

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é !
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331 > jag72 Messages postés 15491 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 27 janvier 2024
15 juin 2022 à 19:47
Pardon, j'avais pas vu, honte à moi ...
0
jag72 Messages postés 15491 Date d'inscription dimanche 16 août 2009 Statut Membre Dernière intervention 27 janvier 2024 2 758 > NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
15 juin 2022 à 20:11
Pas grave. C'est l'envie d'aider qui nous fait lire trop vite
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
21 juin 2022 à 15:42
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 :
$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 !
0
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié le 22 juin 2022 à 13:12
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)
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
22 juin 2022 à 13:31
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".
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022
22 juin 2022 à 13:34
dkim implique de signer chaque message envoyé, cela ne se limite pas à configurer l'entrée DNS du domaine.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
Modifié le 22 juin 2022 à 15:31
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 ?
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
Modifié le 22 juin 2022 à 15:37
Pour rappel mon $entete :

$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 ???
0

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

Posez votre question
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 23 juin 2022 à 11:37
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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
23 juin 2022 à 12:18
mrelayeu.kundenserver.de, c'est un serveur par lequel le message a transité.
As-tu partagé l'en-tête complète et intacte? Sinon, ajoute un commentaire, pour éviter de nous induire en erreur.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
23 juin 2022 à 12:34
Je ne parviens pas à coller l'entête entière, le formum me répond :

You don't have permission to access "http://forums.commentcamarche.net/forum/_xhr_/postmsgfrm/" on this server.
Reference #18.d9e34817.1655980405.43fd5e3
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 23 juin 2022 à 12:39



0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
23 juin 2022 à 13:33
Tu peux probablement utiliser les balises pour poster ce texte sur le forum.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
23 juin 2022 à 15:23
les balises php et html ne fonctionnent pas
:-(
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
23 juin 2022 à 19:48
Ces données dynamiques incluent-elles les adresses from et reply-to?
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
Modifié le 23 juin 2022 à 19:59
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
}
?>

0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
23 juin 2022 à 22:33
Et tout fonctionne bien?
Si je vois bien, tu fais de l'usurpation d'identité avec le
from
et le
reply-to
.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 24 juin 2022 à 08:59
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 :
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 !
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
24 juin 2022 à 09:41
Ton entête est donc, visiblement, fortement incorrecte.
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 24 juin 2022 à 23:38
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 :
    $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 !
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
24 juin 2022 à 23:52
Si j'écris la syntaxe de mon post #0 :
$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 !
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
25 juin 2022 à 17:25
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
26 juin 2022 à 18:17
Je veux bien utiliser une entête correcte en m'aidant du code php.net :
<?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...
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
Modifié le 26 juin 2022 à 18:50
Bon ça bouge...

Ç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)
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
Modifié le 26 juin 2022 à 19:30
J'y suis presque avec cette syntaxe :

    $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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
Modifié le 26 juin 2022 à 22:18
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 28 juin 2022 à 14:38
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
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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
28 juin 2022 à 15:00
Et si tu remplaces la ligne 5 par:
$headers = 'From: Rene MARTIN <martin.rene@free.fr>' . "\r\n" .   

Cela donne quoi?
Si cela donne le résultat attendu, il suffira ensuite d'obtenir le même résultat en utilisant les données du formulaire.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 29 juin 2022 à 14:38
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 !
$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 .....
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
Modifié le 29 juin 2022 à 14:38
Il est important, pour chaque scenario, que tu nous montres (en partageant du texte et pas des images):
- ton code php,
- le contenu de la variable $entete ou $headers,
- le contenu de "afficher l'original"

Sans ces éléments, nous ne pouvons pas t'aider.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
29 juin 2022 à 14:42
Comme le mail n'arrive pas, je ne peux pas te montrer d'original....

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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
29 juin 2022 à 15:38
1) Tu fais bien
echo htmlspecialchars($headers);
?

2) Pourquoi ne continues-tu pas à tester avec
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?
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 29 juin 2022 à 15:50
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)


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();
} 
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
29 juin 2022 à 16:23
Pourquoi ne continues-tu pas à tester avec
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
29 juin 2022 à 16:27
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...
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
29 juin 2022 à 16:47
Ton site envoie un email en faisant croire au destinataire que l'email a été envoyé par l'adresse du client. Pour moi, c'est, très précisément, de l'usurpation de l'identité du client.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
29 juin 2022 à 16:21
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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
29 juin 2022 à 16:51
Et ceci?
$headers = 'From: Rene MARTIN <martin.rene@free.fr>'  . "\r\n" .
'Reply-To: martin.rene@free.fr' . "\r\n" . 
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
29 juin 2022 à 16:52
Il est important, pour chaque scenario, que tu nous montres (en partageant du texte et pas des images):
- ton code php,
- le contenu de la variable $entete ou $headers,
- le contenu de "afficher l'original"

Sans ces éléments, nous ne pouvons pas t'aider.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 07:00
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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
30 juin 2022 à 08:31
Dans ta réponse #54, tu ne précis pas si c'est bon, ou pas bon.
Si c'est bon, peux-tu tester avec le code qui construit le header à partir du formulaire, avec des données identiques?
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
Modifié le 30 juin 2022 à 09:21
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É..."
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
30 juin 2022 à 09:22
Et bien sûr rien ne part donc rien n'arrive dans Gmail !
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
30 juin 2022 à 09:43
Incroyable, en effet.
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>";
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
Modifié le 30 juin 2022 à 13:33
Le texte affiché en haut de page :
headers: From: Rene MARTIN <martin.rene@free.fr> Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30

Dans Gmail :
Rene MARTIN martin.rene@free.fr via eu.hosting-webspace.io
0
avion-f16 Messages postés 19246 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 4 497
Modifié le 30 juin 2022 à 09:39
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 13:41
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...
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 15:48
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
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
Modifié le 30 juin 2022 à 15:12
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 ! ! !
$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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
30 juin 2022 à 15:09
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
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.
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 15:19
Ton code en #59 fonctionne bien il arrive dans mon Gmail, et echo htmlspecialchars($headers); donne :
headers: From: Rene MARTIN <martin.rene@free.fr> Reply-To: martin.rene@free.fr X-Mailer: PHP/7.4.30
(cf mon #60)
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 15:21
Je suis d'accord pour dire que ton header bidouillé fonctionne bien...

Par contre je ne comprends pas ce que tu veux dire par :
"Je ne vois non plus le code PHP qui alimente les variables $prenom, $nom et $email, ni, d'ailleurs le contenu de ces variables".
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
30 juin 2022 à 15:30
Travaillons alors d'abord sur ceci:
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É"?
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024
30 juin 2022 à 15:40
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
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 15:29
<?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
}
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477
30 juin 2022 à 16:11
Et sans accent dans le prénom?
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20
30 juin 2022 à 18:47
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

:-)
0
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 20 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
Modifié le 30 juin 2022 à 18:49
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
0
yg_be Messages postés 22731 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 27 avril 2024 1 477 > emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024
30 juin 2022 à 19:18
De ce que j'ai compris, le seul cas erroné, c'est quand un accent est présent dans les données utilisées dans le header.
0