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 :

bug bête avec la fonction mail


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut bug bête avec la fonction mail
    Bonsoir,

    dans le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $prenom="lolo";
    $nom="lolo";
    $email="xxx";
    $adresse="yyy";	
    $from="From: $prenom $nom<$email>\r\n";
    $from.="Reply-To: $prenom $nom <$email>\n";
    $from.="X-priority:3\n";
    $texte="coucou";
    $texte=stripslashes($texte);
    $from.="MIME-Version: 1.0\r\n";
    $from.="Content-Type: text/html"; 
    $sujet="sujet";
    echo 'adr='.$adresse."<br> sujet=".$sujet."<br> texte=".$texte."<br> from=".$from."<br>";
    mail($adresse,$sujet,$texte,$from);
    le <$email> ne s'affiche pas et je ne vois pas du tout pourquoi : quelqu'un voit-il ?

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 467
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 467
    Points : 4 656
    Points
    4 656
    Par défaut
    ca ne serait pas a cause du fait que justement tu ne l'affiches jamais ?

    tu affiche $adresse et non $email....

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Non, même pas $email est dans la variable $from que j'affiche.

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

    Informations professionnelles :
    Activité : Technicien

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

    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
    // fonction d'envoi de Mail
     
    function Envoi_mail($from,$to,$subject,$message){
    $eol="\n";
     
    $hdr ='From: '.$from.$eol;
    $hdr.='Return-Path: '.$from.$eol;
    $hdr.='Reply-To: '.$from.$eol;
    $hdr.='X-Priority: 3'.$eol;
    $hdr.='X-Mailer: PHP/'.phpversion().$eol;
    $hdr.='MIME-Version: 1.0'.$eol;
    $hdr.='Content-Type: text/html; charset="ISO-8859-1"'.$eol;
    $hdr.='Content-Transfer-Encoding: base64'.$eol.$eol;
     
    $msg=chunk_split(base64_encode($message));
     
    $obj='=?ISO-8859-1?B?'.base64_encode($subject).'?=';
     
    return (bool)@mail($to,$obj,$msg,$hdr);
    }
     
    // Initialisation des variables
     
    // Destinataire
    $prenom ='lolo';
    $nom    ='LOLO';
    $email  ='lolo@lolo.lol';
     
    $from   = $prenom.' '.$nom.' <'.$email.'>';
     
    // Expediteur
    $adresse='moi@monsite.com';
     
    // Sujet
    $sujet='sujet';
     
    // Message
    $texte='coucou';
    $texte=stripslashes($texte);
     
    // Envoie le mail
     
    if(Envoi_mail($from, $adresse, $sujet, $texte))
    	$message='Message envoyé';
    else
    	$message='Erreur ! Le message n\'a pas été envoyé';
     
    echo $message;

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse, mais ça fait la même chose qu'avec ma solution : si je fais un echo de $from, <$email> n'y est pas, et par contre, si j'enlève les accolades, il y est...

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

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Pour l'affichage, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo htmlspecialchars( $from );

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci pour ta réponse, mais ça a l'air de venir de l'hébergeur, car même ayant corrigé l'affichage, chez OVH (l'hébergeur d'origine) et chez Free, pas de mail, par contre, avec 1&1, oui. Comme ce site n'a rien à voir avec 1&1, je suis bien embêté...

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

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par laurentSc
    je suis bien embêté
    Mea culpa, dans la précipitation j'ai commenté /* Destinataire */ la déclaration des variables pour... l'éxpediteur.
    Citation Envoyé par laurentSc
    chez OVH (l'hébergeur d'origine) et chez Free, pas de mail
    Voici un code qui fontionne
    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
     
    <?php
    /********************************
     * Fonction d'envoi de Mail	*
     *******************************/
     
    function Envoi_mail($from,$to,$subject,$message){
    $eol="\n";
     
    $hdr ='From: '.$from.$eol;
    $hdr.='Return-Path: '.$from.$eol;
    $hdr.='Reply-To: '.$from.$eol;
    $hdr.='X-Priority: 3'.$eol;
    $hdr.='X-Mailer: PHP/'.phpversion().$eol;
    $hdr.='MIME-Version: 1.0'.$eol;
    $hdr.='Content-Type: text/html; charset="ISO-8859-1"'.$eol;
    $hdr.='Content-Transfer-Encoding: base64'.$eol.$eol;
     
    $msg=chunk_split(base64_encode($message));
     
    $obj='=?ISO-8859-1?B?'.base64_encode($subject).'?=';
     
    return (bool)@mail($to,$obj,$msg,$hdr);
    }
     
    /********************************
     * Initialisation des variables *
     *******************************/
     
    // Expediteur
    $prenom ='Prénom';
    $nom    ='Nom';
    $email  ='xxxxxxxx@domaine.com';
     
    $expediteur = $prenom.' '.$nom.' <'.$email.'>';
     
    // Destinataire
    $destinataire='yyyyyyyy@domaine.com';
     
    // Sujet
    $sujet='Test d\'envoi...';
     
    // Message
    $texte='Ceci est un Test...';
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html lang="fr">
    <head>
    <title>Test</title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <p><strong>Informations</strong></p>
    <dl>
    	<dt>Expediteur</dt>
    	<dd><?php echo htmlspecialchars($expediteur,ENT_QUOTES,'ISO-8859-1'); ?></dd>
    	<dt>Destinataire</dt>
    	<dd><?php echo htmlspecialchars($destinataire,ENT_QUOTES,'ISO-8859-1'); ?></dd>
    	<dt>Sujet</dt>
    	<dd><?php echo htmlspecialchars($sujet,ENT_QUOTES,'ISO-8859-1'); ?></dd>
    </dl>
    <p><strong>Contenu du message</strong></p>
    <?php echo '<pre>'.htmlspecialchars($texte,ENT_QUOTES,'ISO-8859-1')."</pre>\n";
     
    // Envoie le mail
    if(Envoi_mail($expediteur,$destinataire,$sujet,$texte))
    	$message='Message envoyé';
    else
    	$message='Erreur ! Le message n\'a pas été envoyé';
     
    echo '<strong>'.$message."</strong>\n";
    ?>
    </body>
    </html>
    Il affiche les lignes suivantes ET envoie le mail.
    Informations

    Expediteur
    Prénom Nom <xxxxxxxx@domaine.com>

    Destinataire
    yyyyyyyy@domaine.com

    Sujet
    Test d'envoi...

    Contenu du message

    Ceci est un Test...

    Pour infos, voici aussi ce que donnent les variables délarées dans la fonction d'envoi d'email :

    La variable $hdr
    From: Prénom Nom <xxxxxxxx@domaine.com>
    Return-Path: Prénom Nom <xxxxxxxx@domaine.com>
    Reply-To: Prénom Nom <xxxxxxxx@domaine.com>
    X-Priority: 3
    X-Mailer: PHP/5.1.3RC4-dev
    MIME-Version: 1.0
    Content-Type: text/html; charset="ISO-8859-1"
    Content-Transfer-Encoding: base64
    La variable $msg
    Q2VjaSBlc3QgdW4gVGVzdC4uLg==

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci de la correction, mais pour faire mon test, l'expéditeur et le destinataire étaient le même (moi-même), et le mail n'est toujours pas envoyé (c'est chez OVH, alors que j'avais vu hier que chez 1&1, ça marche, mais comme ce site n'a rien à voir avec 1&1...)

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

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Regarde dans le manager OVH :
    hébergement web > suivi des e-mails automatisés
    Pour voir si les envois de mail ne sont pas bloqués.

    Dans ce cas, tu peux les débloquer / purger.

  11. #11
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci, mais je ne trouve pas ; peux-tu être plus précis : accueil/administration/Aide en ligne... et puis ?

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

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Accueil > Mutualisé > Hébergement > Suivi des Emails automatisés

    Regarder le status dans la partie État du compte

  13. #13
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci ; en fait, ça marche mieux si je sélectionne mon compte (quand je disais "je ne trouve pas", il n'était pas sélectionné ). Par contre, maintenant qu'il est sélectionné et que je peux aller voir, l'état du compte est "envois acceptés"

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

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par laurentSc
    l'état du compte est "envois acceptés"
    Alors, je ne vois pas d'où vient le problême...

    Au cas où, j'ai regardé les travaux actuels mais il n'y pas d'incident déclaré.

  15. #15
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Bon tant pis (merci quand même pour tes recherches). Au cas où, j'ai mis aussi un post dans le forum OVH, et contacté le support OVH (depuis hier), mais pour l'instant, aucune réponse...(Sil y avait moyen d'envoyer un mail depuis un compte gratuit, je pourrais le faire depuis ce compte et l'inclure via une iframe, mais depuis Free, ça ne marche pas non plus, et je n'en connais pas d'autre...)

Discussions similaires

  1. [Mail] Problème avec la fonction mail
    Par acieroid dans le forum Langage
    Réponses: 3
    Dernier message: 10/07/2006, 20h07
  2. [Mail] probleme avec la fonction mail de php
    Par fdavid dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2006, 15h48
  3. Réponses: 7
    Dernier message: 10/06/2006, 14h31
  4. Réponses: 4
    Dernier message: 06/03/2006, 16h14
  5. [Mail] problème avec la fonction mail()
    Par artotal dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2005, 03h14

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