Hilfe!!! php class läuft nicht
marcus
- php
hallo leute,
ich möchte mit der untenstehenden script eine email mit anhang
verschicken, aber es kommen nur fehlermeldungen, wäre echt super wenn sich das jemand von euch mal anschauen könnte.
thx.
<?php
$betreff = "ad Award";
$inhalt = "Contact Person: $mpc_c_p\n
Category: $ca\n
Original Title: $ot\n";
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();
mail($this->to, $this->subject, "", $mime);
}
}; // end of class
$attachment = fread(fopen($filename, "r"), $filename_size);
$mail = new mime_mail();
$mail->from = "marcus_dohl@sj.com";
$mail->headers = "Location: smart_ad_award.php";
$mail->to = "marcus_icepick@yahoo.com";
$mail->subject = "Smart ad Award";
$mail->body = "$inhalt";
$mail->$mail->add_attachment($attachment, $filename_name, $filename_type);
$mail->send();
?>
hallo leute,
ich möchte mit der untenstehenden script eine email mit anhang
verschicken, aber es kommen nur fehlermeldungen, wäre echt super wenn sich das jemand von euch mal anschauen könnte.
thx.
mail($this->to, $this->subject, "", $mime);
hier^^^^^solltest du ein @ zur Fehlerunterdrückung einbauen
}
}; // end of class
$attachment = fread(fopen($filename, "r"), $filename_size);
Hier solltest du prüfen, ob überhaupt eine Datei vorhanden ist,
da habe ich eine Fehlermeldung bekommen
$mail = new mime_mail();
$mail->from = "marcus_dohl@sj.com";
$mail->headers = "Location: smart_ad_award.php";
$mail->to = "marcus_icepick@yahoo.com";
$mail->subject = "Smart ad Award";
$mail->body = "$inhalt";
$mail->$mail->add_attachment($attachment, $filename_name, $filename_type);
Und hier^^^^^^^^^widerholst du dich
$mail->send();
?>
Weitere Fehler habe ich nicht gefunden
Gruß
Andi
danke andi,
inzwischen läuft das ganze prima und fehlerfrei auf dem NS, aber der IE sagt immer das er die folge seite nicht anzeigen kann:-(
<?php
/* Daten aus dem Formular*/
$betreff = "ad Award";
$inhalt = "Contact Person: $mpc_c_p\n
Category: $ca\n
Original Title: $ot\n";
/* class für Anhängen eines Attachments an eine email */
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();
mail($this->to, $this->subject, "", $mime);
}
}; // end of class
/* Daten zum Abschicken der email*/
$attachment = fread(fopen($filename, "r"), $filename_size);
$mail = new mime_mail();
$mail->from = "marcus_dohl@yahoo.com";
$mail->to = "marcus_icepick@yahoo.com";
$mail->subject = "Smart ad Award";
$mail->body = "$inhalt";
$mail->add_attachment($attachment, $filename_name, $filename_type);
$mail->send();
/* Verlinkung auf nachfolgenden Seite */
header("Location: smart_ad_award.php");
?>
danke andi,
inzwischen läuft das ganze prima und fehlerfrei auf dem NS, aber der IE sagt immer das er die folge seite nicht anzeigen kann:-(
Hallo Markus,
kannst du diesen Fehler bitte etwas genauer beschreiben ?
Gruß
Andi