phpmailer - text/html kommt nicht an

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • phpmailer - text/html kommt nicht an

    mein "quick & dirty" mailmanger schickt mir brav die 5 dateien und den Html Text.

    Warum bekomme ich immer noch eine leere .txt Datei mitgeschickt

    Warum stehen im Text auch die "fields" die die if rausnehmen sollte?


    Hier der Code
    PHP-Code:
    <?php
    //type="file" field
    $attachment $_POST['attachment'];
    //mail fiel
    $mail $_POST['email'];
    //success page
    $url $_POST['url'];
    //recipient
    $recipient $_POST['recipient'];
    //uploads
    $uploads $_POST['uploads'];
    // mandatory fields
    $mandatory  explode(','$_POST['mandatory']);
    // mandatory error
    $error 'Bitte gehen Sie <a href="javascript:history.back();">zurück</a> und füllen Sie alle Pflichtfelder Felder korrekt aus!';
    // mail introduction
    $introduction 'Sie haben folgende Nachricht erhalten';
    //Felhertitel
    $title 'Fehler';


    /* DO NOT CHANGE ANYTHING BELOW */

    if(isset($_POST['recipient']))
    {
        
    // check mandatory fields
        
    $complete true;
        foreach(
    $mandatory as $key => $name)
        {
        
            if (empty(
    $_POST[$name])) 
            {
                
    $complete false;
            } 
        }
        
        if(!
    $complete)
        {
            echo 
    '<html>
                    <head>
                      <title>'
    .$title.'</title>
                    </head>
                    <body>'
    ;
            echo 
    $error;
        }     
        else     
        {
            
    //$subject .= $_POST['Betreff'];

            
    $Trenner md5(uniqid(time()));

            
    $header "From: ".$_POST[$mail]; 
            
    $header .= "\n"
            
    $header .= "MIME-Version: 1.0";
            
    $header .= "\n";
            
    $header .= "Content-Type: multipart/mixed; boundary=$Trenner";
            
    $header .= "\n";
            
    $header .= "This is a multi-part message in MIME format";
            
    $header .= "\n";
            
    $header .= "--$Trenner";
            
    $header .= "\n";
            
    $header .= "Content-Type: text/html";
            
    $header .= "\n";
            
    $header .= "Content-Transfer-Encoding: 8bit"
            
    $header .= "\n\n";
            
    $header .= $introduction.'<br />';
            while(list(
    $field$value)=each($_POST))
            {
                if(
    $field!=$attachment or $field!=$mail or $field!=$url or $field!=$recipient or $field!=$uploads or $field!=$mandatory  )
                {
                    echo 
    $field."--".$mail."<br>";
                    
    $header .= '<b>'.$field."</b>: ".$value.'<br />';
                }
            }
            
    $header .= '<br /> <b>Datum/Zeit: </b>';
            
    $header .= date("d.m.Y H:i:s");
            
    $header .= "\n";
            
    $header .= "--$Trenner\n";
                        
            if(!empty(
    $_FILES[$attachment."1"]['name']))
            {

                
                for(
    $i=1;$i<=$uploads;$i++) 
                {

                    if(!empty(
    $_FILES[$attachment.$i]['name']))
                    {
                        
    //warum muss das an?
                        
                        /*$header .= "Content-Type: multipart/mixed; boundary=$Trenner";
                        $header .= "\n";*/
                        
    $header .= "This is a multi-part message in MIME format";
                        
    $header .= "\n";
                        
    $header .= "--$Trenner";
                        
    $header .= "\n"
                        
    $header .= "Content-Type: ";
                        
    $header .= $_FILES[$attachment.$i]['type'];
                        
    $header .= "; name=";
                        
    $header .= $_FILES[$attachment.$i]['name']; 
                        
    $header .= "\n"
                        
    $header .= "Content-Transfer-Encoding: base64"
                        
    $header .= "\n"
                        
    $header .= "Content-Disposition: attachment; filename=";
                        
    $header .= $_FILES[$attachment.$i]['name']; 
                        
    $header .= "\n\n"
                        
    $filecontent fread(fopen($_FILES[$attachment.$i]['tmp_name'], "r"), $_FILES[$attachment.$i]['size']);
                        
    $header .= chunk_split(base64_encode($filecontent.$i));
                        
    $header .= "\n";
                         
    $header .= "--$Trenner--";
                    }
                }
            } 

            
            
            
    mail($recipient$subject""$header); 
            
    //header('Location: '.$url);
       
    }
    }
    ?>
    Zuletzt geändert von mukraker; 27.09.2006, 13:46.
    thx Mukraker

  • #2
    formuliere die frage genauer.

    Kommentar


    • #3
      ziemlich sicher mal

      $field!='attachment'

      usw.

      und im gleichen Befehl sollten and's stehen anstatt or's .

      dann wundert es mich, warum

      $header .= "--$Trenner--";


      nach jeder Datei steht, und Du trotzdem alle 5 Dateien bekommst? eigentlich sollte
      nach der ersten Schluss sein! Falls Du keine Datei hast, gibt es überhaupt keinen
      schliessenden Trenner. Da ist der Browser wohl doppelt gutmütig.
      Zuletzt geändert von sternm; 27.09.2006, 19:45.

      Kommentar


      • #4
        hilft mir jetzt leider auch nicht weiter
        thx Mukraker

        Kommentar

        Lädt...
        X