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 :

Adresse e-mail de l'expéditeur [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut Adresse e-mail de l'expéditeur
    Bonjour,

    je viens de créer un formulaire en PHP.

    Mais lorsque je saisis le formulaire et que je l'envoie, je reçois dans ma messagerie la copie du message (normal) mais avec comme expéditeur le nom de mon compte OVH (nomducompteovh <nomducompteovh@60gp.ovh.net>)

    Cela fait que si quelqu'un m'envoie un message je ne pourrai pas lui répondre car comme expéditeur il y aura comme e-mail : nomducompteovh <nomducompteovh@60gp.ovh.net>

    Savez-vous comment je pourrai remédier à ce problème ?

    Merci beaucoup et bonne journée

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu as bien indiqué un champ FROM dans la composition de ton mail ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre très actif Avatar de la_chouette
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 183
    Par défaut
    Inspire toi de cette exemple:
    http://a-pellegrini.developpez.com/t...php/mail/#L3.2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: Adrien Pellegrini <mail@server.com>'."\r\n";

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    En fait, le "de:" devrait être l'e-mail de la personne qui envoie le message.
    Exemple : brice.ovs@exemple.fr (une personne quelconque)

    Et non pas le nomducompteovh <nomducompteovh@60gp.ovh.net> que j'ai actuellement

  5. #5
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    Non, la personne se contente de remplir et valider un formulaire.

    Le mail est envoyé depuis les serveurs d'OVH en utilisant ton compte de messagerie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    From: toncompte@tondomaine.com
    à toi

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Merci pour ta réponse.

    Et, il n'y a aucun moyen de remplacer l'adresse des serveurs d'OVH (From: toncompte@tondomaine.com) par l'adresse de celui ou celle qui remplie le formulaire ?

    Car là si je fais des tests, je reçois bien le message dans ma boite de messagerie, mais si je veux répondre au message je répond à nomducompteovh <nomducompteovh@60gp.ovh.net>

    Du coup, la réponse n'arrive pas à la personne qui a fait la demande...

    Merci encore pour votre aide et bonne journée

  7. #7
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    Citation Envoyé par quaresma Voir le message
    Merci pour ta réponse.

    Et, il n'y a aucun moyen de remplacer l'adresse des serveurs d'OVH (From: toncompte@tondomaine.com) par l'adresse de celui ou celle qui remplie le formulaire ?

    Car là si je fais des tests, je reçois bien le message dans ma boite de messagerie, mais si je veux répondre au message je répond à nomducompteovh <nomducompteovh@60gp.ovh.net>

    Du coup, la réponse n'arrive pas à la personne qui a fait la demande...

    Merci encore pour votre aide et bonne journée
    la réponse t'a été donnée au début de la discussion :

    Citation Envoyé par sabotage Voir le message
    Est-ce que tu as bien indiqué un champ FROM dans la composition de ton mail ?
    Citation Envoyé par la_chouette Voir le message
    Inspire toi de cette exemple:
    http://a-pellegrini.developpez.com/t...php/mail/#L3.2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: Adrien Pellegrini <mail@server.com>'."\r\n";

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Oui j'ai remplacé la valeur de "From:"

    Voici mon code pour plus de clarté :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    <?php
        /*
            ********************************************************************************************
            CONFIGURATION
            ********************************************************************************************
        */
        // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
        $destinataire = 'jeanpierre.dujardin@oomail.com';
     
        // copie ? (envoie une copie au visiteur)
        $copie = 'oui'; // 'oui' ou 'non'
     
        // Messages de confirmation du mail
        $message_envoye = "Votre message nous est bien parvenu ! Vous allez recevoir une copie de votre message dans votre boîte mail.";
        $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
     
        // Messages d'erreur du formulaire
        $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>.";
        $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
     
        /*
            ********************************************************************************************
            FIN DE LA CONFIGURATION
            ********************************************************************************************
        */
     
        // on teste si le formulaire a été soumis
        if (!isset($_POST['envoi']))
        {
            // formulaire non envoyé
            echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
        }
        else
        {
            /*
             * cette fonction sert à nettoyer et enregistrer un texte
             */
            function Rec($text)
            {
                $text = trim($text); // delete white spaces after & before text
                if (1 === get_magic_quotes_gpc())
                {
                    $stripslashes = create_function('$txt', 'return stripslashes($txt);');
                }
                else
                {
                    $stripslashes = create_function('$txt', 'return $txt;');
                }
     
                // magic quotes ?
                $text = $stripslashes($text);
                return $text;
            };
     
            /*
             * Cette fonction sert à vérifier la syntaxe d'un email
             */
            function IsEmail($email)
            {
                $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
                return (eregi($pattern,$email)) ? true : false;
            };
     
            // formulaire envoyé, on récupère tous les champs.
     
            $monsieur = (isset($_POST['monsieur']))   ? Rec($_POST['monsieur'])   : '';
            $madame = (isset($_POST['madame'])) ? Rec($_POST['madame']) : '';
            $moiselle = (isset($_POST['moiselle'])) ? Rec($_POST['moiselle']) : '';
            $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
            $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
            $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
            $telephone = (isset($_POST['tel']))   ? Rec($_POST['tel'])   : '';
            $ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
     
     
            // On va vérifier les variables et l'email ...
            $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
     
            if (($nom != '') && ($email != '') && ($message != '') && ($telephone != '') && ($ville != ''))
            {
                // les 4 variables sont remplies, on génère puis envoie le mail
                $headers = 'De: '.$nom.' <'.$email.'>' . "\r\n" . 'Téléphone: '.$telephone.'' . "\r\n" . 'Message: ' . "\r\n" . ''.$message.'' . "\r\n";            
     
                // envoyer une copie au visiteur ?
                if ($copie == 'oui')
                {
                    $cible = $destinataire.','.$email;
                }
                else
                {
                    $cible = $destinataire;
                };
     
                // Remplacement de certains caractères spéciaux
                $message = str_replace("'","'",$message);
                $message = str_replace("’","'",$message);
                $message = str_replace("&quot;",'"',$message);
                $message = str_replace('<br>','',$message);
                $message = str_replace('<br />','',$message);
                $message = str_replace("&lt;","<",$message);
                $message = str_replace("&gt;",">",$message);
                $message = str_replace("&amp;","&",$message);
     
                // Envoi du mail
                if (mail($cible, $message, $headers))
                {
                    echo '<p>'.$message_envoye.'   <a href="http://www.nomdedomaine.fr/contact.php">Cliquez-ici pour revenir au formulaire</a></p>'."\n";
                }
                else
                {
                    echo '<p>'.$message_non_envoye.'  <a href="http://www.nomdedomaine.fr/contact.php">Retour au formulaire</a></p>'."\n";
                };
            }
            else
            {
                // une des 3 variables (ou plus) est vide ...
                echo '<p>'.$message_formulaire_invalide.' <a href="http://www.nomdedomaine.fr/contact.php">Retour au formulaire</a></p>'."\n";
            };
        }; // fin du if (!isset($_POST['envoi']))
    ?>
    Merci et bonne journée

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ou est le from dans ce que tu nous montres ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Moi ce n'est pas "From:" mais le "De:"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // les 4 variables sont remplies, on génère puis envoie le mail
    $headers = 'De: '.$nom.' <'.$email.'>' . "\r\n" . 'Téléphone: '.$telephone.'' . "\r\n" . 'Message: ' . "\r\n" . ''.$message.'' . "\r\n";

  11. #11
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Il faut utiliser From:

  12. #12
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    Et oui la syntaxe php est en anglais

    ... Mais ce From sera ensuite automatiquement remplacé par un DE : dans ton logiciel de messagerie

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    546
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 546
    Par défaut
    Bonjour,

    C'est bon j'ai modifié les valeurs mail() et headers dans mon code en m'aidant du manuel PHP.
    Tout fonctionne correctement.

    Pour information, voici le bon code :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    <?php
        /*
            ********************************************************************************************
            CONFIGURATION
            ********************************************************************************************
        */
        // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
        $destinataire = 'jeanpierre.dujardin@oomail.com';
    
        // le sujet
        $subject = 'Votre gite';
    
        // copie ? (envoie une copie au visiteur)
        $copie = 'oui'; // 'oui' ou 'non'
    
        // Messages de confirmation du mail
        $message_envoye = "Votre message nous est bien parvenu ! Vous allez recevoir une copie de votre message dans votre boîte mail.";
        $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";
    
        // Messages d'erreur du formulaire
        $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.php\">envoyer le formulaire</a>.";
        $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
    
        /*
            ********************************************************************************************
            FIN DE LA CONFIGURATION
            ********************************************************************************************
        */
    
        // on teste si le formulaire a été soumis
        if (!isset($_POST['envoi']))
        {
            // formulaire non envoyé
            echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
        }
        else
        {
            /*
             * cette fonction sert à nettoyer et enregistrer un texte
             */
            function Rec($text)
            {
                $text = trim($text); // delete white spaces after & before text
                if (1 === get_magic_quotes_gpc())
                {
                    $stripslashes = create_function('$txt', 'return stripslashes($txt);');
                }
                else
                {
                    $stripslashes = create_function('$txt', 'return $txt;');
                }
    
                // magic quotes ?
                $text = $stripslashes($text);
                return $text;
            };
    
            /*
             * Cette fonction sert à vérifier la syntaxe d'un email
             */
            function IsEmail($email)
            {
                $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
                return (eregi($pattern,$email)) ? true : false;
            };
    
            // formulaire envoyé, on récupère tous les champs.
            
            $monsieur = (isset($_POST['monsieur']))   ? Rec($_POST['monsieur'])   : '';
            $madame = (isset($_POST['madame'])) ? Rec($_POST['madame']) : '';
            $moiselle = (isset($_POST['moiselle'])) ? Rec($_POST['moiselle']) : '';
            $nom     = (isset($_POST['nom']))     ? Rec($_POST['nom'])     : '';
            $email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
            $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
                $telephone = (isset($_POST['tel']))   ? Rec($_POST['tel'])   : '';
            $ville = (isset($_POST['ville'])) ? Rec($_POST['ville']) : '';
    
    
            // On va vérifier les variables et l'email ...
            $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
    
            if (($nom != '') && ($email != '') && ($message != '') && ($telephone != '') && ($ville != ''))
            {
                // les 4 variables sont remplies, on génère puis envoie le mail
                $headers = 'From: '.$email.'' . "\r\n" . 'Reply-To: '.$email.'' . "\r\n" . 'X-Mailer: PHP/' . phpversion();            
    
                // envoyer une copie au visiteur ?
                if ($copie == 'oui')
                {
                    $to = $destinataire.','.$email;
                }
                else
                {
                    $to = $destinataire;
                };
    
                // Remplacement de certains caractères spéciaux
                $message = str_replace("&#039;","'",$message);
                $message = str_replace("’","'",$message);
                $message = str_replace("&quot;",'"',$message);
                $message = str_replace('<br>','',$message);
                $message = str_replace('<br />','',$message);
                $message = str_replace("&lt;","<",$message);
                $message = str_replace("&gt;",">",$message);
                $message = str_replace("&amp;","&",$message);
                $message = 'De: '.$nom.' <'.$email.'>' . "\r\n" . 'Téléphone: '.$telephone.'' . "\r\n" . 'Message: ' . "\r\n" . ''.$message.'' . "\r\n";
    
                // Envoi du mail
                if (mail($to, $subject, $message, $headers))
                {
                    echo '<p>'.$message_envoye.'   <a href="http://www.nomdedomaine.fr/contact.php">Cliquez-ici pour revenir au formulaire</a></p>'."\n";
                }
                else
                {
                    echo '<p>'.$message_non_envoye.'  <a href="http://www.nomdedomaine.fr/contact.php">Retour au formulaire</a></p>'."\n";
                };
            }
            else
            {
                // une des 3 variables (ou plus) est vide ...
                echo '<p>'.$message_formulaire_invalide.' <a href="http://www.nomdedomaine.fr/contact.php">Retour au formulaire</a></p>'."\n";
            };
        }; // fin du if (!isset($_POST['envoi']))
    ?>
    Merci et bonne journée

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

Discussions similaires

  1. [XL-2003] Récupérer adresse mail de l'expéditeur
    Par plastik75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/09/2013, 16h28
  2. Réponses: 3
    Dernier message: 07/05/2010, 11h35
  3. Importance de l'adresse e-mail de l'expéditeur
    Par mh333 dans le forum Langage
    Réponses: 7
    Dernier message: 16/03/2009, 12h42
  4. adresse e-mail
    Par houadglaz dans le forum Langage SQL
    Réponses: 12
    Dernier message: 20/08/2003, 10h13

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