formmail / Dateianhang

mckani

Erfahrenes Mitglied
hallo ihr, :)

Ich hab da mal wieder eine frage unzwar gehts um einen formmail.
ich habe den formmail von tutorials.de also von der tutorial section
hier die code
Code:
<?php 
$admin = "webmaster@domain.de"; 
$subject = "Formular wurde ausgefüllt!"; 

while(list($name,$value)=each($HTTP_POST_VARS)) { 
$message.="$name: $value\n\n"; 
} 

mail($admin,$subject,$message,"From: $mail"); 

echo "Vielen Dank für das Ausfüllen des Formulares!" 

?>

ich wollte wissen, OB es möglich ist einen Datei in Anhang zu legen.
ABER dieses datei soll ein Standart datei sein der schon auf mein server ist z.B (anhang.zip)
Ich habe hier im forum gesucht, aber nix gefunden was mir weiterhelfen kann.!
es sollte für php4 und kein imap sender sein.!

Ich hoffe einer von euch kann mir weiter helfen..

Danke Voraus..
Mfg
 
Ja, man kann eine Datei, oder auch mehrere anhaengen.
Ich hab da irgendwo ein Script zu rumfliegen. Das hatte ich aber auch schonmal hier gepostet.

Uebrigens: Statt $HTTP_POST_VARS sollte besser $_POST genutzt werden.
 
k ich ändere es um auf
$_POST :)

ich hab da einige post von dir gesehen aber keins der mir weiterhelfen würd :)
 
So, ich hab da was gefunden.
Bitte bitte klick mich an.

Wie schon in dem Post steht ist die Klasse fuer PHP5 geschrieben und muesste fuer PHP4 ein klein wenig angepasst werden.
Die Aenderungen sind aber nicht so wild. Wenn die dann fuer PHP4 angepasst ist funktioniert sie auch in der Form mit PHP5, falls Du dann mal umsteigst.

Der Versand erfolgt mittels imap_mail(), das kann aber durch mail() ersetzt werden. Die Funktionen sind laut Doku wohl identisch.
Ich nutze imap_mail weil das Script aus einem Webmailer kommt an dem ich (immer noch) arbeite.

Die Funktion imap_8bit() ist so eine Sache.
Entweder verzichtest Du darauf die Mail korrekt als Quoted-Printable zu verschicken und verschickst sie einfach direkt als 8Bit-Mail, oder Du musst die Funktion ersetzen.
Du koenntest den Mailbody z.B. auch als Base64 encoden.
Und in der Doku zu imap_8bit() gibt es auch eine Funktion die imap_8bit() ersetzen kann, so wie ich das sehe.
 
ok ich schau mir das mal an.^^

nur wollt ich dich noch was fragen. *g*

Bist wirklich aus Hong Kong ? :nospam: :rtfm: :D :D
 
jo ich frag doch gern, ;) danke :)
Ich bin aus Dinslaken kennst Ganzbestimmt :P Nachber *g* oder EXnachber :D

Naja ich hau mir das ding Jetzt mal an. ThX nOchma
 
jo da am ände von Walsum...

naja ich hab hier mal das umgeändert auf php4
Code:
<?php 
class email 
{ 
    var $id; 
    var $to; 
    var $subject; 
    var $body; 
    var $from; 
    var $cc; 
    var $bcc; 
    var $attachedfiles; 

    function __construct($to,$subject,$body,$from="",$cc="",$bcc="") 
    { 
        $this->id=md5(uniqid()); 
        $this->to=$to; 
        $this->subject=$subject; 
        $this->body=$body; 
        $this->from=$from; 
        $this->cc=$cc; 
        $this->bcc=$bcc; 
        $this->attachedfiles=array(); 
    } 

    function destroy() 
    { 
        if (file_exists("mailtemp/".$this->id)) 
            { 
                for ($attachment=0;$attachment<count($this->attachedfiles);$attachment++) 
                    { 
                        unlink("mailtemp/".$this->id."/".$this->attachedfiles[$attachment]); 
                    } 
                rmdir("mailtemp/".$this->id); 
            } 
    } 

    function attachfile($tempfile,$filename) 
    { 
        if (!file_exists("mailtemp/".$this->id)) 
            { 
                mkdir("mailtemp/".$this->id); 
            } 
        move_uploaded_file($tempfile,"mailtemp/".$this->id."/".$filename); 
        $this->attachedfiles[]=$filename; 
    } 

    function removeattachment($filename) 
    { 
        unlink("mailtemp/".$this->id."/".$filename); 
        $newattachedfiles=array(); 
        for ($attachment=0;$attachment<count($this->attachedfiles);$attachment++) 
            { 
                if ($this->attachedfiles[$attachment]!=$filename) 
                    { 
                        $newattachedfiles[]=$this->attachedfiles[$attachment]; 
                    } 
            } 
        $this->attachedfiles=$newattachedfiles; 
        unset($newattachedfiles); 
    } 

    function send() 
    { 
        $body=imap_8bit($this->body); 
        $body.="\n\n"; 
        $boundary="----".$this->id; 
        $email=""; 
        $email.="Content-class: urn:content-classes:message"; 
        $email.="\nUser-Agent: Free WebMail"; 
        $email.="\nMIME-Version: 1.0"; 
        if (!empty($this->attachedfiles)) 
            { 
                $email.="\nContent-Type: multipart/mixed;\n\tboundary=\"".$boundary."\""; 
            } 
        if (!empty($this->from)) 
            { 
                $email.="\nFrom: ".$this->from; 
            } 
        if (!empty($this->cc)) 
            { 
                $email.="\nCc: ".$this->cc; 
            } 
        if (!empty($this->bcc)) 
            { 
                $email.="\nBcc: ".$this->bcc; 
            } 
        $email.="\nX-Priority: 3 (Normal)"; 
        $email.="\nImportance: Normal"; 
        if (!empty($this->attachedfiles)) 
            { 
                $email.="\n\n--".$boundary; 
            } 
        $email.="\nContent-Type: text/plain;\n\tcharset=\"iso-8859-1\""; 
        $email.="\nContent-Transfer-Encoding: quoted-printable"; 
        $email.="\nContent-Disposition: inline"; 
        $email.="\n\n".$body; 
        if (!empty($this->attachedfiles)) 
            { 
                $email.="\n\n--".$boundary; 
            } 
        for ($attachment=0;$attachment<count($this->attachedfiles);$attachment++) 
            { 
                $file=fopen("mailtemp/".$this->id."/".$this->attachedfiles[$attachment],"r"); 
                $content=fread($file,filesize("mailtemp/".$this->id."/".$this->attachedfiles[$attachment])); 
                fclose($file); 
                $encodedfile=chunk_split(base64_encode($content)); 
                $email.="\nContent-Type: application/octet-stream;\n\tname=\"".$this->attachedfiles[$attachment]."\""; 
                $email.="\nContent-Transfer-Encoding: base64"; 
                $email.="\nContent-Description: ".$this->attachedfiles[$attachment]; 
                $email.="\nContent-Disposition: attachment;\n\tfilename=\"".$this->attachedfiles[$attachment]."\""; 
                $email.="\n\n".$encodedfile."\n\n--".$boundary; 
            } 
        if (!empty($this->attachedfiles)) 
            { 
                $email.="--"; 
            } 
        mail($this->to,$this->subject,"",$email); 
    } 
} 

function mailstring($mailobject) 
{ 
    return rawurlencode(serialize($mailobject)); 
} 

function mailobject($mailstring) 
{ 
    return unserialize(stripslashes(rawurldecode($mailstring))); 
} 
?>

Ich hoffe das ich nix versehen habe.!
Aber ich hab wirklich Keine ahnung wie ich das mit dem imap_8bit machen soll hab in Doku. Nix gesehen wo steht womit man es ersätzen kann. :-/
 
Zuletzt bearbeitet:
Zurück