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 :

fonction mail en php [PHP 7]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 7
    Points
    7
    Par défaut fonction mail en php
    salut, j'ai utilisé la fonction mail de php mais ça n'affiche pas l'adresse mail de l'expéditeur au niveau de l’entête dans ma boite mail qui reçoit le message.
    Alors que moi j'aimerais l'afficher là précisément pour pour répondre facilement à l'expéditeur. merci de bien vouloir m'aider svp..!

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Salut.
    Habituellement, on utilise la librairie PHPMailer, très facile à utiliser (voir code ci-dessous).

    Il suffit au préalable de faire un fichier phpmailer.php avec le code ci-dessous

    https://github.com/PHPMailer/PHPMail.../PHPMailer.php

    De l'inclure dans ta page PHP, et le tour et joué.


    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    <?
            require "phpmailer.php";
            $mail = new PHPmailer();
            $mail->IsSMTP();
            $mail->IsHTML(true);
            $mail->Host='hote_smtp';
            $mail->From='votre@adresse';
            $mail->AddAddress('adresse@destinataire');
            $mail->AddReplyTo('votre@adresse');     
            $mail->Subject='Exemple trouvé sur DVP';
            $mail->Body='<html><body><head><style>.entete{background-color:#0000FF;color:#FFFFFF;border:solid 3px;font-size:25px}';
            $mail->Body.='.ligne{color:#0000FF;border:solid 1px;text-align:center;font-size:23px}</style></head>';
            $mail->Body.='<center><table><tr><td class="entete">Voici un exemple d\'e-mail au format HTML</td></tr>';
            $mail->Body.='<tr><td class="ligne">Ceci est un tableau HTML</td></tr></table></center></body></html>';
     
            if(!$mail->Send()){ //Teste si le return code est ok.
              echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
            }
            else{     
              echo 'Mail envoyé avec succès';
            }
            $mail->SmtpClose();
            unset($mail);
     
    ?>

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    salut Dendrite, au fait , j'ai essayé de faire comme t'as dit .. ça ne fonctionne pas.. je suis un peu embrouillé. moi j'avais l'habitude d'utiliser le la fonction basique mail.
    alors dis-moi par rapport à cette fonction y'a t-il pas une manière de résoudre mon problème? Si non, peux tu me proposer une forme un peu plus simple de ta première proposition stp?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    <?php 
     
            $name = $_POST["nom"];
            $email =$_POST["email"];
            $message = $_POST["message"];
     
     
     
            $recipient = "adresse@gmail.com";
            $email_content = $message;
            // Créer l'obet du mail.
            $subject = $name;
            $email_headers = $email;
     
    if (mail($recipient, $subject, $email_content, $email_headers,)){ echo "message envoyé";}
     
    else {echo "le message n'est pas envoyé";}
     
     
     ?>

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 628
    Points
    3 628
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    Personne ne peut analyser ton code, puisque personne ne sait ce que tu mets dans tes variables.
    Reprenons avec la petite librairie PHPMailer (incontournable) et réduisons son utilisation pour que tu comprennes.
    Ne change rien d'autre que mette les bonnes adresses mail...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
            require "phpmailer.php";
            $mail = new PHPmailer();
            $mail->IsSMTP();
            $mail->IsHTML(false);
            $mail->From='adresse_expediteur@gmail.com';
            $mail->AddAddress('adresse_destinataire@gmail.com';);
            $mail->AddReplyTo('adresse_expediteur@gmail.com';);     
            $mail->Subject='Voici mon premier mail envoyé avec PHPMailer';
            $mail->Body='Bonjour destinataire, je te souhaite de bonnes vacances';
            if(!$mail->Send()){
              echo 'Erreur mail non parti !';
            }
            else{     
              echo 'Mail envoyé avec succès';
            }
            $mail->SmtpClose();
            unset($mail);
    ?>

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Les entêtes de mail, c'est un chouia plus compliqué que de juste coller le mail de l'expéditeur dans la variable entête.
    En supposant que tu utilises une version de PHP 7.2+, tu peux passer les entêtes sous forme de tableau (sinon il faudra construire la chaine en concaténant les morceaux) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php 
     
            $name = $_POST["nom"];
            $email =$_POST["email"];
            $message = $_POST["message"];
     
     
     
            $recipient = "adresse@gmail.com";
            $email_content = $message;
            // Créer l'obet du mail.
            $subject = $name;
            $email_headers = ['FROM' => $email];
     
    if (mail($recipient, $subject, $email_content, $email_headers,)){ echo "message envoyé";}
     
    else {echo "le message n'est pas envoyé";}
     
     
     ?>
    (Au passage, les entêtes, c'est les 2e et 3e exemples de la doc :https://www.php.net/manual/fr/functi...p#example-4237)

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Mai 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Bénin

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2020
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci CELIRA , c'est exactement ce que je voulais. En fait j'avais pas crée la variable $email_headers. Encore une fois Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Fonction mail en php et Serveur de mail
    Par Rudya dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 26/04/2007, 12h11
  2. [Mail] Fonction mail en PHP
    Par rte304 dans le forum Langage
    Réponses: 1
    Dernier message: 11/04/2007, 22h02
  3. [Mail] probleme avec la fonction mail de php
    Par fdavid dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2006, 15h48
  4. [Mail] Fonction mail () de php
    Par goma771 dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 21h18

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