toms38 | Salut à tous,
j'utilise la classe mime_mail.class.php pour faire cette page, la voici :
Code :
- <?php
- require "mime_mail.class.php";
- /*$nom=$_POST['nomMail'];
- $mail=$_POST['mailMail'];
- $objet=$_POST['objetMail'];
- $message=$_POST['messageMail'];*/
- $file_name = '../dossier.pdf';
- @$fp = fopen( $file_name, "r" );
- if ( $fp ) {
- $contenu_fichier = fread( $fp, filesize( $file_name ));
-
- $mail = new mime_mail();
- $mail->from = 'toto';
- $mail->subject = 'voilavoilaaaa';
- $mail->body = '';
- // 'nomdufichier' peut etre un nom complètement différent du fichier réel
- $mail->attach( $contenu_fichier, 'dossier.pdf');
- $mail->to = 'supertoms@free.fr';
- $mail->send();
- echo "c'est fait !";
- }
|
Après validation, la page m'affiche ceci :
Code :
- Notice: Undefined variable: encode in c:\documents and settings\thomas\bureau\stage2\scripts\mime_mail.class.php on line 60
- c'est fait !
|
Je recoi bien le mail avec la pièce jointe, mais celle-ci ne s'ouvre pas, et ne s'enregistre pas... Pour info, voici ma classe mime_mail.class.php :
Code :
- <?php
- // ------------------------------------------------------------------------- //
- // Classe pour l'envoi d'emails avec pièces jointes. //
- // ------------------------------------------------------------------------- //
- // Auteur: Perrich //
- // Email: perrich@club-internet.fr //
- // Web: http://www.frshop.net/ //
- // ------------------------------------------------------------------------- //
- class mime_mail {
- var $parts;
- var $to;
- var $from;
- var $headers;
- var $subject;
- var $body;
- // constructeur
- function mime_mail() {
- $this->parts = array();
- $this->to = "";
- $this->from = "";
- $this->subject = "";
- $this->body = "";
- $this->headers = "";
- }
- // attache un fichier au message
- function attach($message, $name, $ctype = '') {
- // type de contenu non defini
- if (empty($ctype)) {
- // on essaie de reconnaitre l'extension
- switch(strrchr(basename($name), "." )) {
- case ".gz": $ctype = "application/x-gzip"; break;
- case ".tgz": $ctype = "application/x-gzip"; break;
- case ".zip": $ctype = "application/zip"; break;
- case ".pdf": $ctype = "application/pdf"; break;
- case ".png": $ctype = "image/png"; break;
- case ".gif": $ctype = "image/gif"; break;
- case ".jpg": $ctype = "image/jpeg"; break;
- case ".txt": $ctype = "text/plain"; break;
- case ".htm": $ctype = "text/html"; break;
- case ".html": $ctype = "text/html"; break;
- default: $ctype = "application/octet-stream"; break;
- }
- }
- $this->parts[] = array (
- "ctype" => $ctype,
- "message" => $message,
- "encode" => $encode,
- "name" => $name
- );
- }
- // fonction utilisee pour contruire le message MIME
- // utilisee depuis build_multipart()
- function build_message($part) {
- $message = $part["message"];
- $message = chunk_split(base64_encode($message));
- $encoding = "base64";
- return( "Content-Type: ".$part[ "ctype"].
- ($part[ "name"]? "; name = \"".$part[ "name"]. "\"" : "" ).
- "\nContent-Transfer-Encoding: $encoding\n\n$message\n" );
-
- }
- // compose le message MIME
- // utilisee depuis send()
- function build_multipart() {
- $boundary = "b".md5(uniqid(time()));
- $multipart = 'Content-Type: multipart/mixed; boundary = '.$boundary;
- $multipart .= "\n\nThis is a MIME encoded message.\n\n--".$boundary;
- for ($i = sizeof($this->parts) - 1; $i >= 0; $i--) {
- $multipart .= "\n".$this->build_message($this->parts[$i]).'--'.$boundary;
- }
- return $multipart.= "--\n";
- }
- // envoie le message
- // derniere fonction a appeler
- function send() {
- $mime = 'Subject: '.$this->subject."\n";
- // parametres optionnels
- if (!empty($this->from)) $mime .= 'From: '.$this->from. "\n";
- if (!empty($this->headers)) $mime .= $this->headers. "\n";
- if (!empty($this->body)) $this->attach($this->body, '', 'text/plain');
- // entete MIME
- $mime .= "MIME-Version: 1.0\n".$this->build_multipart();
- // envoi du message
- mail( $this->to, $this->subject, '', $mime );
- }
- };
- ?>
|
Ca fait 2 jours que je rame, merci d'avance !
|