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 :

Function mail et la Gmail


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut Function mail et la Gmail
    Bonjour,

    J'ai créé une fonction qui permet d'envoyer des mails de type html grace a la fonction mail cette fonction marche trés bien sauf que le mail s'affiche très mal quand il est envoyé sur une boite de type Gmail alors que sous thunderbird ou hotmail cela marche trés bien.

    Petit ajout juste pour dire que enfaite le bug intervient que quand j'ajoute une piece jointe au mail.

    Il y a t'il un entête particulier pour que le mail sois interprété sous Gmail ?

    Merci a vous.

  2. #2
    Membre régulier Avatar de Shandler
    Profil pro
    Inscrit en
    Février 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 514
    Points : 107
    Points
    107
    Par défaut
    Je me permet de vous rajoutez ma fonction si ca peut aider a la compréhension, merci a vous

    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
     
    	/**
    	 * Permet la creation et l'envoie du mail
    	 * Variable $destinataire permet de spécifier le destinataire du mail	 
    	 * Variable $sujet permet de spécifier le sujet du mail  
       * Variable $messtxt permet de spécifier le message version texte du mail 
       * Variable $messhtml permet de spécifier le message version html du mail 
       * Variable $from permet de spécifier l'expediteur du mail 
       * Variable $piece_jointe = array() permet de spécifier les piéce jointe a inclure au mail      
    	 **/
      function envoie_mail($destinataire, $sujet , $messtxt, $messhtml , $from ,$piece_jointe = NULL) 
      { 
      		$frontiere = '455g45d45gdg' . md5(uniqid(mt_rand())); 
      		$frontierebis = '455g45d45gdg' . md5(uniqid(mt_rand())); 
     
      		$entete = "Reply-to: $from\n";
      		$entete .= "From:$from\n";
      		$entete .= "Date: ".date("l j F Y, G:i")."\n";
      		$entete .= "MIME-Version: 1.0\n";
     
      		if($piece_jointe != NULL)
          {
            $entete .= 'Content-Type: multipart/related; boundary="'.$frontiere.'"'; 
          }
     
            $msg .= "--".$frontiere."\n";
     
          if($piece_jointe != NULL && is_array($piece_jointe))
          {
            $msg .= 'Content-Type: multipart/alternative; boundary="'.$frontierebis.'"';
          }
          else
          {
            $entete .= 'Content-Type: multipart/alternative; boundary="'.$frontierebis.'"';
          }
     
      		//Le message en texte simple pour les navigateurs qui
      		//n'acceptent pas le HTML
      		$msg.= "This is a multi-part message in MIME format.\n\n"; 
      		$msg .= "--".$frontierebis."\n";
      		$msg .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n"; 
      		$msg .= "Content-Transfer-Encoding: 8bit\n\n";
      		$msg .= $messtxt."\n\n";
     
      		//le message en html original
      		$msg .= "--".$frontierebis."\n";
      		$msg .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
      		$msg .= "Content-Transfer-Encoding: 8bit\n\n";
      		$msg .= "
            <html>
             <head>
                <title>Un titre ici</title>
                 <style type='text/css'>
                    body {font:12px Arial; color:#000;}
                 </style>          
             </head>
             <body>
                  ".$messhtml." 
             </body>
            </html>\n\n";
     
          $msg .= "--".$frontierebis."--\n";
     
          //PIECE JOINTE
          if($piece_jointe != NULL && is_array($piece_jointe))
          {
            foreach($piece_jointe as $piece)
            {
              $piece = explode('[@jointure@]',$piece);
              $msg .= "--".$frontiere."\n";
              $msg .= 'Content-Type: ';
              if(mime_content_type($piece['0'].$piece['1']) == ''){ $msg .= 'x-unknown/attachment'; }else{ $msg .= mime_content_type($piece['0'].$piece['1']); }
              $msg .= '; name="'.$piece['1'].'"'."\n";
              $msg .= 'Content-Transfer-Encoding: base64'."\n";
              if($piece['2'] == '1')
              {
                $msg .= 'Content-ID: <'.$piece['1'].'>'."\n\n";
              }
              else
              {
                $msg .= 'Content-Disposition:attachement; filename="'.$piece['1'].'"'."\n\n";
              }
              $msg .= chunk_split(base64_encode(file_get_contents($piece['0'].$piece['1'])))."\n"; 
            }
          }  
     
          if($piece_jointe != NULL && is_array($piece_jointe))
          {
            $msg .= "--".$frontiere."--\n";
          }  
     
      		if(mail($destinataire, $sujet, $msg, $entete))
      		{
            return true;
          }
          else
          {
            return false;
          }
      }

Discussions similaires

  1. [MySQL] Php : problème avec function mail()
    Par totoAussi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2009, 19h45
  2. Réponses: 3
    Dernier message: 19/03/2009, 19h21
  3. Probleme de la function mail sur lampp
    Par Programmeur php dans le forum Réseau
    Réponses: 1
    Dernier message: 04/12/2008, 17h57
  4. [PHPMailer] Bcc et function mail non instancié
    Par hugo69 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 10/12/2007, 15h23
  5. [Mail] envoi d'un mail, problème avec gmail
    Par kitty2006 dans le forum Langage
    Réponses: 11
    Dernier message: 30/09/2006, 08h45

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