Metabolicman | Bonjour
Comme vous pouvez lire dans l'intitulé du message j'ai un pb avec un envoi de mail avec pièce jointe.
Le mail s'envoi bien, je reçois bien le message avec la pièce jointe mais celle-ci ne comporte aucune extension et aucun nom alors que je pense les avoir spécifié.
J'utilise une classe trouver sur le web que j'ai légèrement modifié:
Script de la classe :
Code :
- class clmail
- {
- var $parts;
- var $to;
- var $from;
- var $headers;
- var $subject;
- var $body;
- // constructeur
- function clmail()
- {
- $this->parts = array();
- $this->to = "";
- $this->from = "";
- $this->subject = "";
- $this->body = "";
- $this->headers = "";
- }
- // attache un fichier au message
- function attach($message,$name,$ctype)
- {
- $this->parts[] =
- array (
- "ctype" => $ctype,
- "message" => $message,
- "encode" => $encode,
- "name" => $name
- );
- // fin de fonction
- }
- // 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\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 = "";
- // 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);
- }
- }; // fin de la classe
|
Appel de la classe et son utilisation :
Code :
- include("class/mail.php" );
- // ouverture et lecture du fichier
- $fichier = fread(fopen("Sauv_BDD/".date("d-m-Y" ).".txt", "r" ), filesize("Sauv_BDD/".date("d-m-Y" ).".txt" ));
- // instanciation de la classe
- $mail = new clmail();
- // parametres
- $mail->to = "metabolicman@gmail.com"; // Adresse email de reception
- $mail->subject = "Sauvegarde BDD du ".date("d-M-Y" ); // Sujet
- $mail->body = "Ci-joint une sauvegarde de la base de donnée du jour."; // Corps du message
- $mail->from = "Intranet-ekinoxe@ekinoxe.com"; // Adresse email de l'expediteur (optionnel)
- $mail->headers = "Date: "; // Entetes supplementaires (optionnel)
- $mail->attach("$fichier", "BDD",".txt" ); // fichier attache (optionnel)
- // envoi du message
- $mail->send();
|
|