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 :

[Mail] envoi d'un mail, problème avec gmail


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut [Mail] envoi d'un mail, problème avec gmail
    Bonjour à tous,

    Voilà j'ai créer un email qui envoie une confirmation de commande à la personne qui commande.

    Mon mail marche parfaitement c'est ce qu'il me semblait, parce que je testais avec hotmail.

    Cependant lorsque je me l'envoie à mon autre adresse c'est à dire sur gmail, ca m'affiche le mail avec toutes les balises. D'ou vient le problème? Voici mon code et deux images
    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
     
    	$nom = $value['CLIENT_NOM'];
    	$prenom = $value['CLIENT_PRENOM'];
    	$email = $value['CLIENT_EMAIL'];
     
     //$query="SELECT CLIENT_ID, CMD_ID, CMD_NO, PRODUITS_NOM, FK_PRODUITS, LIGNE_CMD_ID, LIGNE_CMD_QTE from commande, client, produits, ligne_commande WHERE CLIENT_ID=FK_CLIENT, PRODUITS_ID=FK_PRODUITS, CMD_ID=FK_CMD";
     
      	//Expéditeur
     
    	$from = 'fanycortat@gmail.com';
     
      //Sujet
         $subject = 'Confirmation de commande N° :';
    	 $subject .= $nocom;
     
       //   message
     
     
     
        // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini
     
    	 $headers  = 'MIME-Version: 1.0' . "\r\n";
         $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
     
         //En-têtes additionnels//changer et metter l'adresse du christohpe
        $headers .= "To: ".$prenom." <".$email.">, <fanycortat@gmail.com> \r\n";
        $headers .= 'From: Ackermann & Cie <fanycortat@gmail.com>' . "\r\n";
     
    	$message = "Bonjour,<br><br>";
    	$message .= $prenom ." ";
    	$message .= $nom;
    	$message .= "<br><br>Voici la confirmation de la commande no";
    	$message .= " ". $nocom;
    	$message .= "<br><br><br><u>détail de la commande</u>" ."\r\n";
     
    	$requete="SELECT PRODUITS_NOM, LIGNE_CMD_QTE, PRIX_DE_VENTE FROM commande, produits, ligne_commande WHERE FK_PRODUITS=PRODUITS_ID AND FK_CMD = CMD_ID AND CMD_NO = $nocom";
    	$resultat=mysql_query ($requete);
    	$message .= "<table><tr><td width=100>";
    	$message .= "Nom du produit";
    	$message .= "</td><td width=150>";
    	$message .= "Quantité commandée";
    	$message .= "</td><td width=100>";
    	$message .= "Prix de vente";
    	$message .= "</td></tr>";
     
    	while ($valeur = mysql_fetch_array ($resultat))
    	{
     
    	$nom_p = $valeur['PRODUITS_NOM'];
    	$qte = $valeur['LIGNE_CMD_QTE'];
    	$vente = $valeur['PRIX_DE_VENTE'];
    	$message .= "<tr><td>";
    	$message .= $nom_p. " ";
    	$message .= "</td><td>";
    	$message .= $qte. " ";
    	$message .= "</td><td>";
    	$message .= "CHF" . " ";
    	$message .= $vente.".--";
    	$message .= "</td></tr>";
    	}
    	$message .= "</table>";
    	$message .= "<br><br>";
     
    	$requete1="SELECT CMD_TOTAL FROM commande WHERE CMD_NO = $nocom";
    	$resultat1=mysql_query ($requete1);
    	$valeur1 = mysql_fetch_array ($resultat1);
    	$total = $valeur1['CMD_TOTAL'];
    	$message .="Le montant total de votre commande est de : CHF" ." ";
    	$message .= $total ." ";
    	$message .=".--, TVA comprise ";
     
     
     
    	$message .= "<br><br>Ackermann et cie vous remercie pour votre commande, nous vous contacterons concernant la livraison de la viande. Nous vous rappellons  que le paiement se fait à 30 jours net dès réception de la facture";
     
     
     
     
     
     
         // Envoi
        mail($to, $subject, $message, $headers, $from);

    J'ai mis deux capture d'écran pour voir le problème

    D'avance merci pour l'aide
    Images attachées Images attachées   

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    est-ce que quelqu'un aurait une idée

  3. #3
    Membre émérite
    Avatar de ozzmax
    Inscrit en
    Novembre 2005
    Messages
    977
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Novembre 2005
    Messages : 977
    Par défaut
    ouin c'est parceque si tu veux l'envoyer sous format html
    il faut que tu lui dise que c'est du html

    une balise <br> dans un message il affiche ca comme du texte

    or voici un ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $email = "<html><head></head><body><font color=red>Rapport d'erreur</font><br /><br />";
    $email .= "En date du :".$ladate." à : ".$heure."<br />";
    $email .= "<i>Remarqué dans : </i>".$pageErr."<br /><br />";
    $email .= "<b>Rapport :</b><br />".$message."<br /><br />";
    $email .= "<i>Signalé par : <b>".$nomComplet."</b></i><br />---------------------------------------------<br /><br /></body></html>";

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    Mais j'ai modifié selon tes conseils et cela n'a absolument rien changé? Pourquoi chez hotmail le mail s'affiche correctement et pas chez gmail...tu peux m'en dire plus...

    Peux-t'on m'aider

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    Salut,

    Gmail affiche pourtant correctement les mails en HTML...

    Je viens de faire un test... Tu peux essayer de t'inspirer de la source du mail que je me suis envoyé :
    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
    From: xxxxx <xxxxxx@gmail.com>
    User-Agent: Thunderbird 1.5.0.5 (X11/20060812)
    MIME-Version: 1.0
    To:  xxxxxxxxxx@gmail.com
    Subject: Test
    Content-Type: text/html; charset=ISO-8859-1
    Content-Transfer-Encoding: 7bit
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
      <title></title>
    </head>
    <body bgcolor="#ffffff" text="#000000">
    <b><big>T</big>est de mail en HTML</b><br>
    <br>
    <div align="center"><font color="#ffcc33">Je suis curieux de voir ce
    que &ccedil;a va donner...</font><br>
    </div>
    </body>
    </html>
    Les lignes auxquelles faire attention sont, je pense, celles-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Content-Type: text/html; charset=ISO-8859-1
    Content-Transfer-Encoding: 7bit
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    Autant avoir un document HTML parfaitement conforme aux standards, histoire de s'assurer que ça vient pas de là.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    Merci beaucoup je vais tester cela demaine.....sinon je va pêter un plomb.....

    Encore merci et je redonne des nouvelles
    A+

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    tu fais comment pour envoyer le mail avec l'exmeple qeu tu m'a donnée....

  8. #8
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 69
    Par défaut
    En fait, j'ai utilisé Thunderbird pour rédiger le mail... J'ai regardé dans le mail reçu quelle était la source.

    Le script que tu as est correct (pour preuve, il affiche bien le mail sur hotmail).
    Utilise simplement les headers que je t'ai indiqués, et commence bien le document html avec les balises d'entête qui conviennent, comme celles que je t'ai données.
    Peut-être que l'ordre a une importance... Le caractère de retour à la ligne aussi... ?

    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
     // Caractère de fin de ligne
    // Trouvé sur http://fr.php.net/manual/fr/ref.mail.php
    if (strtoupper(substr(PHP_OS,0,3)=='WIN')) {
      $eol="\r\n";
    } elseif (strtoupper(substr(PHP_OS,0,3)=='MAC')) {
      $eol="\r";
    } else {
      $eol="\n";
    }
    // Headers
    $headers .= 'From: Ackermann & Cie <fanycortat@gmail.com>' . $eol;
    $headers .= 'MIME-Version: 1.0' . $eol;
    $headers .= 'To:  .$prenom.' <'.$email.'>, <fanycortat@gmail.com>' . $eol;
    $headers .= 'Subject: Test' . $eol;
    $headers .= 'Content-Type: text/html; charset=ISO-8859-1' . $eol;
    $headers .= 'Content-Transfer-Encoding: 7bit' . $eol;
     
    // Message
    $message = '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">' . $eol;
    $message .= '<html>' . $eol;
    $message .= '<head>' . $eol;
    $message .= '  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">' . $eol;
    $message .= '  <title></title>' . $eol;
    $message .= '</head>' . $eol;
    $message .= "Bonjour,<br><br>";
    $message .= $prenom ." ";
    $message .= $nom;
    $message .= "<br><br>Voici la confirmation de la commande no";
    $message .= " ". $nocom;
    $message .= "<br><br><br><u>détail de la commande</u>" ."\r\n";
     
    $requete="SELECT PRODUITS_NOM, LIGNE_CMD_QTE, PRIX_DE_VENTE FROM commande, produits, ligne_commande WHERE FK_PRODUITS=PRODUITS_ID AND FK_CMD = CMD_ID AND CMD_NO = $nocom";
    $resultat=mysql_query ($requete);
    $message .= "<table><tr><td width=100>";
    $message .= "Nom du produit";
    $message .= "</td><td width=150>";
    $message .= "Quantité commandée";
    $message .= "</td><td width=100>";
    $message .= "Prix de vente";
    $message .= "</td></tr>";
     
    while ($valeur = mysql_fetch_array ($resultat))
    {
     
    $nom_p = $valeur['PRODUITS_NOM'];
    $qte = $valeur['LIGNE_CMD_QTE'];
    $vente = $valeur['PRIX_DE_VENTE'];
    $message .= "<tr><td>";
    $message .= $nom_p. " ";
    $message .= "</td><td>";
    $message .= $qte. " ";
    $message .= "</td><td>";
    $message .= "CHF" . " ";
    $message .= $vente.".--";
    $message .= "</td></tr>";
    }
    $message .= "</table>";
    $message .= "<br><br>";
     
    $requete1="SELECT CMD_TOTAL FROM commande WHERE CMD_NO = $nocom";
    $resultat1=mysql_query ($requete1);
    $valeur1 = mysql_fetch_array ($resultat1);
    $total = $valeur1['CMD_TOTAL'];
    $message .="Le montant total de votre commande est de : CHF" ." ";
    $message .= $total ." ";
    $message .=".--, TVA comprise ";
     
    $message .= "<br><br>Ackermann et cie vous remercie pour votre commande, nous vous contacterons concernant la livraison de la viande. Nous vous rappellons  que le paiement se fait à 30 jours net dès réception de la facture";
    Pour plus de clarté dans ton mail, je te recommande de faire tous tes traitements de données avant, de stocker dans des variables et de les affichers dans le message. C'est plus facile de s'y retrouver

  9. #9
    Membre très actif Avatar de harlock59
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2005
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 262
    Par défaut
    bonjour,
    j'ai déja eu un problème similaire:
    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
    if (isset($_POST[valid_envoi]))
    {
        $req=mysql_query("select * from abonnes_newsletter") or die (mysql_error()); 
        while ($voir=mysql_fetch_array($req))
            {   //echo $voir[0]."<br>";
                //--- les variables ---//  
     
                $sujet = $_POST[sujet]; 
                //--- la structure du mail ----//  
                $from  = "From: www.nomdusite.fr <contact@nomdusite.fr>\n"; 
                $from .= "MIME-version: 1.0\n"; 
                $from .= "Content-type: text/html; charset= iso-8859-1\n"; 
     
                //--- un exemple de message avec corps en html ---//  
                $message='<body style=\"width: 361px;\">
    <div style=\"text-align: justify;\"><img src=\"http://www.url_du_logo.gif\"><br>'; 
                $message.='<br><br>';
                $message.=$_POST[texte1];
                $message.='<br><br>';
                $message.=$_POST[texte2];
                $message.='<br><br>';
                $message.=$_POST[texte3];
                $message.='<br><br>';
                $message.=$_POST[texte4];
                $message.='<br><br>';
                $message.=$_POST[texte5];
                $message.='<br><br>';
                $message.='Pour vous d&eacute;sabonner, vous pouvez le faire ';
                $message.='<a href="http://www.site.com/';
                $message.='/desab_newsletter/">en cliquant ici</a></div>';
                //--- on envoie l'email ---//  
                if (mail($voir[0],$sujet,$message,$from))
                    {
                    echo "le message &agrave; ".$voir[0]." a bien &eacute;t";
                    echo "&eacute; envoy&eacute;<br>";
                    }
                    else {echo "le message &agrave ".$voir[0]." n'est pas parti";}  
            }
    }
    ?>

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    et comment tu as résolu le problème ?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    Voila j'ai modifié mon email, il ne contient plus d'emial et il marche...mais par contre je souhaiterais encore pouvoir l'améliorer et j'ai besoin d'aide pour cela.

    J'aimerais si cela est possible souligner Détail de la commande
    et pouvoir également aligner NOm du produit, quantité commandeé, et prix de vente, Avant j'avais fait un tableau donc tout s'alignait l'un en dessous de l'autre parfaitement. comment faire maintenant sans mettre de html ?

    Lorsque la personne reçoit le mail dans le champ De: elle voit fanycortat@...j'aimerais bien qu'il est marqué "Ackermann & Cie" et ensuite l'email entre <> comment est-ce qu'il faut faire ?

    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
    $query="SELECT CLIENT_NOM, CLIENT_PRENOM, CLIENT_RUE, CLIENT_EMAIL FROM client WHERE CLIENT_ID=$Cliid";
    	$result=mysql_query ($query);
    	$value = mysql_fetch_array ($result);
     
    	$nom = $value['CLIENT_NOM'];
    	$prenom = $value['CLIENT_PRENOM'];
    	$email = $value['CLIENT_EMAIL'];
     
     $query="SELECT  CLIENT_ID, CMD_ID, CMD_NO, PRODUITS_NOM, FK_PRODUITS, LIGNE_CMD_ID, LIGNE_CMD_QTE from commande, client, produits, ligne_commande WHERE CLIENT_ID=FK_CLIENT, PRODUITS_ID=FK_PRODUITS, CMD_ID=FK_CMD";
     
     
    $TO = "$email, <fanycortat@gmail.com>";
     
    $h  = "From: " . $email;
     
     
    	$message .= "Bonjour ". "\r\n";
    	$message .= $prenom ." ";
    	$message .= $nom. "\r\n" ."\r\n";;
    	$message .= "Voici la confirmation de la commande no";
    	$message .= " ". $nocom . "\r\n" . "\r\n";
    	$message .= "détail de la commande". "\r\n" . "\r\n";
     
    	$requete="SELECT PRODUITS_NOM, LIGNE_CMD_QTE, PRIX_DE_VENTE FROM commande, produits, ligne_commande WHERE FK_PRODUITS=PRODUITS_ID AND FK_CMD = CMD_ID AND CMD_NO = $nocom";
    	$resultat=mysql_query ($requete);
     
    	$message .= "Nom du produit" . " ";
     
    	$message .= "Quantité commandée" . " ";
     
    	$message .= "Prix de vente" . "\r\n";
     
     
    	while ($valeur = mysql_fetch_array ($resultat))
    	{
     
    	$nom_p = $valeur['PRODUITS_NOM'];
    	$qte = $valeur['LIGNE_CMD_QTE'];
    	$vente = $valeur['PRIX_DE_VENTE'];
     
    	$message .= $nom_p. " ";
     
    	$message .= $qte. " ";
     
    	$message .= "CHF" . " ";
    	$message .= $vente.".--"  . "\r\n" . "\r\n";
     
    	}
     
     
    	$requete1="SELECT CMD_TOTAL FROM commande WHERE CMD_NO = $nocom";
    	$resultat1=mysql_query ($requete1);
    	$valeur1 = mysql_fetch_array ($resultat1);
    	$total = $valeur1['CMD_TOTAL'];
    	$message .="Le montant total de votre commande est de : CHF" ." ";
    	$message .= $total ." ";
    	$message .=".-- ". "\r\n" . "\r\n";
    	$message .="Attention : cette somme peut varier de plus ou moins 10% selon le rendement de l'animal." ." " . "\r\n" . "\r\n";
     
     
     
    	$message .= "Ackermann & Cie vous remercie pour votre commande, nous vous contacterons concernant la livraison de la viande. Le paiement se fait fait comptant lors de la livraison";
     
     
     
     
    	mail($TO, 'Commande de viande', $message, $h);?>

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 340
    Par défaut
    est-ce que quelqu'un peut m'aider ?

    merci

Discussions similaires

  1. E-mail multipart : problème avec GMail
    Par marcleb1 dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2010, 21h44
  2. [Mail] envoi d'un mail via la fonction mail() de php
    Par Abac_Angelique dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2009, 23h46
  3. [Mail] Envoi d'e-mail avec image de fond
    Par mimagyc dans le forum Langage
    Réponses: 4
    Dernier message: 19/12/2007, 20h58
  4. [Mail] Envoi d'e-mail avec pièces jointes
    Par PrinceMaster77 dans le forum Langage
    Réponses: 1
    Dernier message: 25/01/2007, 16h35
  5. Réponses: 6
    Dernier message: 14/11/2006, 10h35

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