Problem med MIME-mail class - vedr. navn på attachment
HejsaJeg har fundet dette MIME mail sustem her på experten. Det virker helt fint, mailen bliver sendt og attachment bliver vedhæftet. Mit problem er, at den vedhæftede attachment ikke hedder 'advertising_com.xls' når jeg modtager filen. Istedet hedder den noget i stil med:
attunr6f.dat eller lignende.. et tilsyneladende tilfældigt navn, men altid med ".dat" bagefter.
Er der nogen der kan fortælle mig hvor jeg har lavet noget galt?
Nederst har jeg kopieret den kode jeg bruger til at kalde class'en:
-----------------
<?
/*
* Class mime_mail
* Original implementation by Sascha Schumann <sascha@schumann.cx>
* Modified by Tobias Ratschiller <tobias@dnet.it>:
* - General code clean-up
* - separate body- and from-property
* - killed some mostly un-necessary stuff
*/
class mime_mail {
var $parts;
var $to;
var $from;
var $headers;
var $subject;
var $body;
// void mime_mail() class constructor
function mime_mail() {
$this->parts = array();
$this->to = "";
$this->from = "";
$this->subject = "";
$this->body = "";
$this->headers = "";
}
// void add_attachment(string message, [string name], [string ctype])
// Add an attachment to the mail object
function add_attachment($message, $name = "", $ctype = "application/octet-stream") {
$this->parts[] = array ("ctype" => $ctype, "message" => $message, "encode" => $encode, "name" => $name);
}
// void build_message(array part=
// Build message parts of an multipart mail
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";
}
// void build_multipart()
// Build a multipart mail
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";
}
// void send()
// Send the mail (last class-function to be called)
function send() {
$mime = "";
if (!empty($this->from))
$mime .= "From: ".$this->from. "\n";
if (!empty($this->headers))
$mime .= $this->headers. "\n";
if (!empty($this->body))
$this->add_attachment($this->body,"", "text/plain");
$mime .= "MIME-Version: 1.0\n".$this->build_multipart();
/* echo $this->to."<br><br>";
echo $this->subject."<br><br>";
echo $mime."<br><br>";
echo "END";
*/
mail($this->to, $this->subject, "", $mime);
}
}; // end of class
----------------
include "mail_builder.class";
$attachment = fread(fopen("advertising_com.xls", "r"), filesize("advertising_com.xls"));
$mail = new mime_mail();
$mail->from = "Emne fra advertising.com";
$mail->headers = "Errors-To: min@mail.dk";
$mail->to = "min$mail.dk";
$mail->subject = "Emner fra Advertising.com bannere";
$mail->body = "Hej navn\n\nHer er et excel ark med emner fra i går.\n\n";
$mail->add_attachment("$attachment","advertising_com.xls","application/octet-stream");
$mail->send();
