Mail-Frage

Oetzicool

Erfahrenes Mitglied
Hallo Leute, erstmal ein frohes neues Jahr an alle.
Ich hab da ne Frage, mit der mail()-Funktion kann ich Infos als Mail z.B. von meiner Website verschicken...gibt es aber auch ne Möglichkeit auch Daten in einem Anhang mitzuschicken (Bilder, Textdateien usw.)! Danke schonmal! :)
 
Code:
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /srv/www/vhosts/httpdocs/website/test/mailer.php on line 4

das ist die Fehlermeldung
 
Das liegt daran dass die Klasse in PHP5 geschrieben ist. Auf deinem Server läuft PHP4 in welchen die Zugriffsoperatoren public und private noch nicht verfügbar waren. Hier die Klasse in PHP4
PHP:
<?php
class email
{
    var $from;
    var $to;
    var $cc;
    var $bcc;
    var $subject;
    var $body;
    var $useragent;
    var $attachedfiles;

    function email($from,$to,$subject,$body,$cc="",$bcc="",$useragent="PHP/ReptilerEMailClass")
    {
        $this->from=$from;
        $this->to=$to;
        $this->subject=$subject;
        $this->body=$body;
        $this->cc=$cc;
        $this->bcc=$bcc;
        $this->useragent=$useragent;
        $this->attachedfiles=array();
    }

    function addattachment($filename)
    {
        $this->attachedfiles[]=$filename;
    }

    function composemail()
    {
        if (count($this->attachedfiles)>0)
            {
                $boundary='----'.md5(uniqid());
            }
        $mail='To: '.$this->to."\r\n";
        $mail.='Subject: '.$this->subject."\r\n";
        $mail.="Content-class: urn:content-classes: message\r\n";
        $mail.='User-Agent: '.$this->useragent."\r\n";
        $mail.="MIME-Version: 1.0\r\n";
        if (count($this->attachedfiles)>0)
            {
                $mail.="Content-Type: multipart/mixed;\r\n\tboundary=\"".$boundary."\"\r\n";
            }
        $mail.='From: '.$this->from."\r\n";
        if (!empty($this->cc))
            {
                $mail.='Cc: '.$this->cc."\r\n";
            }
        if (!empty($this->bcc))
            {
                $mail.='Bcc: '.$this->bcc."\r\n";
            }
        $mail.="X-Priority: 3 (Normal)\r\n";
        $mail.="Importance: Normal\r\n";
        if (count($this->attachedfiles)>0)
            {
                $mail.="\r\n--".$boundary."\r\n";
            }
        $mail.="Content-Type: text/plain;\r\n\tcharset=\"iso-8859-1\"\r\n";
        $mail.="Content-Transfer-Encoding: quoted-printable\r\n";
        $mail.="Content-Disposition: inline\r\n\r\n";
        $mail.=imap_8bit($this->body)."\r\n\r\n";
        if (count($this->attachedfiles)>0)
            {
                for ($x=0;$x<count($this->attachedfiles);$x++)
                    {
                        $mail.="\r\n\r\n--".$boundary."\r\n";
                        $filename=explode('/',$this->attachedfiles[$x]);
                        $filename=$filename[count($filename)-1];
                        $file=fopen($this->attachedfiles[$x],"r");
                        $content=fread($file,filesize($this->attachedfiles[$x]));
                        fclose($file);
                        $encodedfile=chunk_split(base64_encode($content));
                        $mail.="Content-Type: application/octet-stream;\r\n\tname=\"".$filename."\"\r\n";
                        $mail.="Content-Transfer-Encoding: base64\r\n";
                        $mail.='Content-Description: '.$filename."\r\n";
                        $mail.="Content-Disposition: attachment;\r\n\tfilename=\"".$filename."\"\r\n\r\n";
                        $mail.=$encodedfile;
                    }
                $mail.="\r\n\r\n--".$boundary."--";
            }
        return $mail;
    }
}
?>
 
Also ich probier die Funktion folgendermaßen aufzurufen aber irgendwie klappt des nicht
Code:
$from = "test@website.de";
$to = "test@empfaenger.de";
$subject = "Test";
$body = "TESTMAIL";
email($from,$to,$subject,$body,$cc="",$bcc="",$useragent="PHP/ReptilerEMailClass");
 
aber irgendwie klappt des nicht
Sorry, aber ich kann mir nicht vorstellen, dass das eine generierte Fehlermeldung ist.

Guck dir nochmal an, wie man Klassen eigentlich benutzt. :rolleyes:
PHP:
<?php /* ... die Klasse von oben ... */
$mail_from    = "der@absender.de";
$mail_to      = "der@empfaenger.de";
$mail_subject = "Nur ein Test!";
$mail_body    = "Hallo ".$mail_to;

$mail_send = new email($mail_from, $mail_to, $mail_subject, $mail_body); 
$mail_send->composemail();
?>
 
Ah sorry habe die class übersehen...aber ich habs probiert des will mir einfach keine mail senden...ich versteh das problem net
 
Zurück