IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

header FROM pour l'envoi de mails remplacé


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2015
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2015
    Messages : 185
    Points : 54
    Points
    54
    Par défaut header FROM pour l'envoi de mails remplacé
    Bonjour à tous,
    je viens vers vous car je sèche sur l'envoi de mails en PHP. J'ai cherché sur des forums et on dirait que ce que je fais est bon mais ça ne fonctionne pas comme je voudrais.

    En effet, avec ce code, l'envoi de mail fonctionne mais le "from" est remplacé par "sh-218779649@eu.hosting-webspace.io" (je précise que mon hébergeur est Ionos).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $from = $_POST['inputNom '] . " " . $_POST['inputPrenom']; 
    $headers = "MIME-Version : 1.0" . "\r\n";
    $headers .= 'Content-Type: text/plain; charset=utf-8';
    $headers .= 'From: ' . $from . "\r\n";
    $headers .= 'Reply-To: ' . $mail . "\r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion()."\r\n";
    mail($dest, $raison, $content, $headers)
    Sauriez-vous d'où vient mon problème ?


    Question subsidiaire : on peut voir que j'ai spécifié "charset=utf-8" pourtant dans le corps du mail que je reçois les accents sont remplacés par des symboles du type "é". Est-ce parce que ma déclaration est mauvaise ? Dois-je utiliser un autre charset ? Si oui lequel ?

    Je vous remercie par avance !

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    essayez la bibliothèque PHPMailer, elle gère beaucoup de spécificités de format des e-mails :
    https://github.com/PHPMailer/PHPMailer

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2015
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2015
    Messages : 185
    Points : 54
    Points
    54
    Par défaut
    Effectivement c'est une piste qu'il va falloir que j'explore mais le truc c'est que je n'ai qu'une seule page en PHP sur mon site. C'est une page qui m'envoie un mail après remplissage d'un formulaire.
    ça m'embête un peu de déployer les grands moyens juste pour ça.
    Et puis finalement ce n'est qu'une ligne de code qui pose problème. Tous les éléments du header fonctionnent bien à priori (reste à voir l'histoire du charset), y'a que le "from" qui bloque...

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2015
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2015
    Messages : 185
    Points : 54
    Points
    54
    Par défaut
    Petite précision, si je ne passe que du texte ça fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: webmaster@example.com' . "\r\n";


    par contre si j'ajoute une variable, ça ne fonctionne plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: webmaster@example.com' . $sender . "\r\n";


    Je ne vois pas pourquoi je ne pourrais pas passer une variable...

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 853
    Points : 44 222
    Points
    44 222
    Par défaut
    Parce que le fait d'ajouter ta variable va potentiellement ajouter du texte générant un header invalide sur le plan des RFC mails.
    Un var_dump de $header après ajout de variable donne quoi ?

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2015
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2015
    Messages : 185
    Points : 54
    Points
    54
    Par défaut
    ça me renvoie ça :

    string(142) "MIME-Version : 1.0 Content-Type: text/html; charset=utf-8From: Nom Prénom Reply-To: test@gmail.com X-Mailer: PHP/8.0.23 "

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2015
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2015
    Messages : 185
    Points : 54
    Points
    54
    Par défaut
    Il se passe des trucs bizarres maintenant.

    Si je déclare mes headers comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: ' . $from . ' <' .$mail . '>' . "\r\n" . 'Reply-To: ' . $mail . "\r\n" . 'X-Mailer: PHP/' . phpversion();
    ça fonctionne. Sauf s'il y a un accent dans le champ nom ou prénom de mon formulaire et dans ce cas le mail n'est pas envoyé.


    Par contre, si je déclare mes headers comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $headers = "MIME-Version : 1.0" . "\r\n";
    $headers .= 'Content-Type: text/html; charset=utf-8';
    $headers .= 'From: ' . $from . ' <' .$mail . '>' . "\r\n";
    $headers .= 'Reply-To: ' . $mail . "\r\n";
    $headers .= 'X-Mailer: PHP/' . phpversion()."\r\n";
    qu'il y ait des accents ou non, le mail part mais le FROM ne fonctionne pas, j'ai "sh-218779649@eu.hosting-webspace.io" à la place.

  8. #8
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 853
    Points : 44 222
    Points
    44 222
    Par défaut
    Je vois déjà un premier prob : from est collé à UTF-8. On ne voit pas les retour chariot mais je suppose que c'est lié à l'affichage du contenu de la variable, pas forcément du contenu de celle-ci.

    Le serveur substitue le champ from, soit parce qu'il n'est pas valide, soit car il est paramétré pour le faire.

    Il faudrait essayer avec PHPMailer comme indiqué. Si ça marche avec, c'est ton code qui est invalide (au sens RFC mail). Tu pourras toujours creuser après pour te débarasser de PHPMailer.

  9. #9
    Membre du Club
    Avatar de LAB3W
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2022
    Messages : 26
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Vahia Voir le message
    C'est une page qui m'envoie un mail......
    J'espère que tu n'envoies pas sur Gmail (entre autre) - parce que sinon tu ne verras jamais ton mail dans ta boite gmail. - çà fait 10 mois que je me bat pour recevoir mes mails dans Gmail/Outlook365 (MSN, HOTMAIL, et serveurs mails Professionnel) - CF : Février ouverture de cette discussion entre admins Sys/Network/Mail sur Debian-FR.org En tout cas il faut que ton serveur mail (et web et autres serveurs d'envoie) soient conforme à DMARC.

    Spécifications DMARC (Domain-based Message Authentication, Reporting, and Conformance) - Google support

    J'utilise DMARC () sur mon serveur de mail pour que les serveur destinataires de mails acceptent mes courriels.

    Une page http://www.zw3b.site/dmarc/ sur mon site qui peut vous intéresser sur DMARC (Authentification et conformité des messages basés sur le domaine (d'envoie) avec création de rapports (des serveurs destinataires)).

    Et cette documentation que j'ai écris http://howto.zw3b.fr/developpement/p...ail-depuis-php (bon y'a juste un code pour écrire un mail version/text et version/html)

    Bonne journée.

    DMARC Site Web Officiel

    Note de Moi-même : En passant j'ai écris un code PHP Source que vous pouvez utiliser pour analyser vos (ceux envoyés par les serveurs destinataires de vos courriels) rapports DMARC que j'ai mis à disposition ici : PHP Source : Visualisation HTML de vos rapports DMARC.

    Sur le forum avec plus d'informations : https://www.developpez.net/forums/d2.../#post11879297




    Salutations,
    Romain

  10. #10
    Membre du Club
    Avatar de LAB3W
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2022
    Messages : 26
    Points : 56
    Points
    56
    Par défaut
    Tenez j'ajoute ce lien : Testez l'indésirabilité (spam) de vos emails - 3 mails / jour vous pouvez tester, leur envoyer - sinon c'est payant.

    Qui te permet en envoyant un mail à l'adresse email sur la page d'acceuil -> il te dise si ton mail est superbe ou non - Par exemple, un dernier test d'envoie/réception que j'ai effectué depuis mon serveur Web.

    Mail Tester me retourne : https://www.mail-tester.com/test-t677l6spt -> 8.4/10

    Joli travail. Votre e-mail est presque parfait.
    je perd -1.6 sur 10 parce que j'ai un lien vers un .site
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Untrustworthy TLDs
    URI: www.zw3b.site (site)





    Romain

  11. #11
    Membre du Club
    Avatar de LAB3W
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2022
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2022
    Messages : 26
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Vahia Voir le message
    ça me renvoie ça :

    string(142) "MIME-Version : 1.0 Content-Type: text/html; charset=utf-8From: Nom Prénom Reply-To: test@gmail.com X-Mailer: PHP/8.0.23 "
    Il manque le ";" après le "charset", tu es aveug....eee je plaisante


    Romain

Discussions similaires

  1. Problème pour l'envoi de mails avec le SMTP de GMail
    Par BigWill dans le forum ASP.NET
    Réponses: 12
    Dernier message: 24/01/2008, 03h16
  2. problèmes avec un header
    Par tioseb dans le forum Langage
    Réponses: 1
    Dernier message: 04/04/2006, 17h01
  3. [Mail] Probleme pour l'envoi de mails avec mime
    Par tof91 dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2006, 17h44
  4. Problème avec un HEADER
    Par Zebulonn dans le forum Langage
    Réponses: 4
    Dernier message: 19/10/2005, 14h56
  5. [JMeter] Problème avec la boucle infinie pour les tests
    Par zegreg dans le forum Tests et Performance
    Réponses: 1
    Dernier message: 05/10/2005, 12h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo