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 :

envoi de mail avec pièce jointe [Fait]


Sujet :

Langage PHP

  1. #1
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut envoi de mail avec pièce jointe
    Bonjour,

    novice en php, j'ai fais un code pour envoyer un mail en php(php5).
    Pour le texte, pas de problème, mais pour attacher une pièce jointe au mail, je n'y arrive pas.

    Voici le 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
    $from = $_POST["from"]  ; 
      $pj = $_POST["pj"];
      $sujet = $_POST["sujet"] ;  
      $sujet  = "[FAQ] ". $sujet ; 
     
      $message = $_POST["message"] ;
     
      // ajoute des header supplementaire
      $header =  'From: ' . $from ."\r\n";
      $header .= 'Reply-To: '. $from . "\r\n";
      $header .=  "Content-Type: multipart/mixed; boundary=\"ma_balise\"\r\n" ;
     
      // La partie texte du message
     
      $message = "--ma_balise\r\n"."Content-Type: text/plain\r\n".
      "Content-Transfer-Encoding: base64\r\n\r\n".base64_encode($message).
       "\r\n\r\n". 
       "--ma_balise--\r\n\r\n" ;
     
        // La partie PJ 
     
      $message .= "--ma_balise\r\n"."Content-Type: application/zip\r\n".
      "Content-Transfer-Encoding: base64\r\n\r\n".base64_encode($pj). 
      "\r\n\r\n"."Content-Disposition: attachment \r\n\r\n".
      "--ma_balise--" ;
     
     
      $returnValue =  mail ($to,$sujet,$message,$header);
     
      if ( $returnValue == true ) {
           echo "<center><font color=\"green\" size=\"4\">Votre message a bien été envoyé. Merci.</font></center>";
      }
      else {
          echo " impossible d\'envoyer le message " ; 
      }
    Quelqu'un aurait une idée ?
    Merci.
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Tu as un exemple dans ce cours
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Citation Envoyé par RideKick Voir le message
    Tu as un exemple dans ce cours
    Ou, j'ai déjà tester, mais ça ne marche pas plus.

    Après plusieurs bidouilles, j'arrive à ça :

    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
    <?php 
     
     //$from = null ; // valeur du champ To 
     $message = null ; // le contenu du message
     $to = null ; 
     $returnValue = null ; // valeur de retour des fonctions
     $sujet = null  ;
     $header = null ; // headers supplemntaires ; 
     
      if ( isset($_POST["from"])==false  && isset($_POST["message"])==false  && isset($_POST["sujet"])==false  ){
     
       exit ("<center><font size=\"5\" color=\"red\">Tous les champs doivent être renseignés</font></center>" );
     
      }
      $to = "adresse@mail" ; 
      $from = $_POST["from"]  ; 
      $content = $_POST["pj"];
      $sujet = $_POST["sujet"] ;  
      $sujet  = "[FAQ] ". $sujet ; 
     
      $message = $_POST["message"] ;
     
      // ajoute des header supplementaire
      $header =  'From: ' . $from ."\r\n";
      $header .= 'Reply-To: '. $from . "\r\n";
      //$header .=  "Content-Type: multipart/mixed; boundary=\"ma_balise\"\r\n" ;
     /*
     
      // La partie texte du message
     
      $message = "--ma_balise\r\n"."Content-Type: text/plain\r\n".
      "Content-Transfer-Encoding: base64\r\n\r\n".base64_encode($message).
       "\r\n\r\n". 
       "--ma_balise--\r\n\r\n" ;
    
        // La partie PJ 
    
      $message .= "--ma_balise\r\n"."Content-Type: application/zip\r\n".
      "Content-Transfer-Encoding: base64\r\n\r\n".base64_encode($pj). 
      "\r\n\r\n"."Content-Disposition: attachment \r\n\r\n".
      "--ma_balise--" ;
    */
     
    $boundary = md5(uniqid(microtime(), TRUE));
     
    // Headers
     
    $header .= 'Mime-Version: 1.0'."\r\n";
    $header .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    $header .= "\r\n";
     
    // Message
    $message. = 'This is a multipart/mixed message.'."\r\n\r\n";
     
    // Texte
    $message .= '--'.$boundary."\r\n";
    $message .= 'Content-type:text/plain;charset=utf-8'."\r\n";
    $message .= 'Content-transfer-encoding:base64\r\n\r\n'.base64_encode($message)"\r\n"
    "\r\n\r\n".'--'.$boundary."\r\n";
     
     
    // Pièce jointe
    $file_name = 'image.jpg';
    if (file_exists($file_name))
    {
    	$file_type = filetype($file_name);
    	$file_size = filesize($file_name);
     
    	$handle = fopen($file_name, 'r') or die('File '.$file_name.'can t be open');
    	$content = fread($handle, $file_size);
    	$content = chunk_split(base64_encode($content));
    	$f = fclose($handle);
     
    	$message .= '--'.$boundary."\r\n";
    	$message .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
    	$message .= 'Content-transfer-encoding:base64'."\r\n";
    	$message .= $content."\r\n";
    }
     
    // Fin
    $message .= '--'.$boundary."\r\n";
     
     
      $returnValue =  mail ($to,$sujet,$message,$header);
     
      if ( $returnValue == true ) {
      	 echo "<center><font color=\"green\" size=\"4\">Votre message a bien été envoyé. Merci.</font></center>";
      }
      else {
      	echo " impossible d\'envoyer le message " ; 
      }
     
    ?>
    sniff...
    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    t'as bien écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    enctype="multipart/form-data"
    dans ta balise <form> ?

Discussions similaires

  1. [webdev]envoi de mail avec pièce jointe
    Par kwakly dans le forum WebDev
    Réponses: 3
    Dernier message: 11/02/2009, 11h07
  2. Envoi de mail avec pièce jointe?
    Par ArseNic dans le forum XMLRAD
    Réponses: 4
    Dernier message: 28/06/2007, 11h37
  3. [Mail] Problème d'envoi de mail avec pièces jointes
    Par nelly644 dans le forum Langage
    Réponses: 2
    Dernier message: 31/03/2007, 10h14
  4. Envoie de Mail avec Pièce jointe
    Par Yaz dans le forum Struts 1
    Réponses: 2
    Dernier message: 12/07/2006, 13h51
  5. Envoi de mail avec pièce jointe
    Par gids01 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 20/04/2006, 13h15

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