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 :

Fonction mail avec pièce jointe


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2008
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 178
    Points : 56
    Points
    56
    Par défaut Fonction mail avec pièce jointe
    Bonjour,

    Je viens d'écrire une fonction pour envoyer un mail via la fonction mail de mon hébergeur. Je voudrais envoyer via ce mail une pièce jointe.

    J'ai écris ceci (J'ai sorti les paramètres de ma fonction)

    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
    //Paramètres
    	$to = "lui@monhebergeur.com";
    	$from = "moi@monhebergeur.com";
    	$subject ="Mail avec PJ";
    	$boundary = "-----=".md5(rand());
    	$filename = "pj.doc";
    	$file_type = filetype($filename);
    	$file_size = filesize($filename);
     
    	//Traitement pièce jointe
    	$fichier   = fopen($filename, "r");   //on ouvre le fichier en lecture seule
    	$attachement = fread($fichier, $file_size); //on lit l'ensemble du fichier avec la fonction fread
    	fclose($fichier); //on ferme le fichier
    	$attachement = chunk_split(base64_encode($attachement));
     
    	//Header
    	$headers ='From: <'.$from.'>'."\n";
    	$headers .="Reply-To: ".$from."\n";
    	$headers .= 'Mime-Version: 1.0'."\r\n";
    	$headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
    	$headers .= '--'.$boundary."\r\n";
     
    	// Message
    	$msg = 'Bonjour.'."\r\n\r\n";
    	$msg = 'Un mail avec une PJ vient d'arriver.'."\r\n\r\n";
    	$msg .= '--'.$boundary."\r\n";
     
    	// On attache la pièce jointe
     
    	$msg.= "Content-Type: application/msword; name=\"pj.doc\"."\r\n";
    	$msg.= "Content-Transfer-Encoding: base64"."\r\n";
    	$msg.= "Content-Disposition: attachment; filename=\"pj.doc\"."\r\n\r\n";
     
    	//Envoie
    	mail($to, $subject, $msg, $headers);
    Malheureusement je reçois bien le mail avec la pièce jointe. Mais quand j'ouvre le document word, il est vide.

    J'ai placé mon fichier pj.doc et mail.php qui contient ce code à la racine de mon serveur.

    D'où peux provenir l'erreur. Est ce que c'est le fichier qui n'est pas lu ?

    Merci pour toute aide.

  2. #2
    Membre chevronné 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
    Points : 1 895
    Points
    1 895
    Par défaut
    pour envoyer une pièce jointe, utilise plutôt la librairie phpMailer :
    http://jcrozier.developpez.com/tutor...eloppeurs/#LIV

Discussions similaires

  1. fonction mail avec pièce jointe
    Par sitadom39 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 03/01/2014, 16h49
  2. fonction mail() avec pièce jointe
    Par ballantine's dans le forum Langage
    Réponses: 5
    Dernier message: 11/03/2010, 15h43
  3. Envoie mail avec pièce jointe
    Par Juniora dans le forum Access
    Réponses: 3
    Dernier message: 03/04/2006, 15h24
  4. [VB]Bp envoie mail avec piéce jointe
    Par jm1213 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/02/2006, 21h55
  5. [Mail] Fonction mail() et pièce jointe
    Par allyson dans le forum Langage
    Réponses: 16
    Dernier message: 09/11/2005, 16h05

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