[PHP] Email mit Anhang klappt nicht

Dieses Thema im Forum "Webentwicklung" wurde erstellt von master2005, 22. September 2011 .

Schlagworte:
  1. 22. September 2011
    Email mit Anhang klappt nicht

    HHallo, habe leider noch ne Frage wobei google mir nichts gutes ausspuckt und zwar möchte ich hier zusätzlich noch eine Datei anhängen an eine Email aber trotzdem die Email als HTML verschicken

    $empfaenger = $e["email"];
    $absender = $_POST["absender"];
    $betreff = $_POST["betreff"];
    $antwortan = $_POST["antworten"];

    $header .= "Content-Type: text/html\n";
    $header .= "Content-Transfer-Encoding: 8bit\n";
    $header .= "From: $absender\r\n";


    $mailtext .= $_POST["editor1"].'</br><a href='.$admin->domain."/abmelden.php?abmelden=".$e["email"]."'>Abmelden</a>";

    mail( $empfaenger,
    $betreff,
    $mailtext,
    $header);
     
  2. 23. September 2011
    AW: Email mit Anhang klappt nicht

    schau dir mal das hier an:
    http://www.php-einfach.de/codeschnipsel_1114.php
     
  3. 14. Oktober 2011
    AW: Email mit Anhang klappt nicht

    Das funktioniert nicht! Viele Provider ( Bsp Web.de / Gmx.de ) haben damit Probleme und zeigen die Dateien nich korrekt an. Ich habe selbst vor einer Weile damit gekämpft!

    Eine korrekte Funktion wäre diese hier:

    Spoiler
    PHP:

            
    private function  mail_attachment ( $to , $subject , $message , $attachment ){
                
    $mime_boundary  md5 ( uniqid ( mt_rand (),  1 ));

                
    $header   = "From:" . $this -> sender . "<" . $this -> sender_mail . ">\n" ;
                
    $header  .=  "Reply-To: " . $this -> sender_reply . "\n" ;
                
    $header .=  "MIME-Version: 1.0\n" ;
                
    $header .=  "Content-Type: multipart/mixed;\n" ;
                
    $header .=  " boundary=\"" . $mime_boundary . "\"\n" ;

                
    $content "--" . $mime_boundary . "\n" ;
                
    $content .=  "Content-Type: text/html charset=\"UTF-8\"\n" ;
                
    $content .=  "Content-Transfer-Encoding: 7bit\n\n" ;
                
    $content .=  $message . "\n" ;

                if(!
    is_array ( $attachment )){
                    
    $attachment  = array( $attachment );
                }
                foreach(
    $attachment  as  $file ){
                    
    $name  basename ( $file );
                    
    $size  filesize ( $file );
                    
    $data  file_get_contents ( $file );
                    
    $type  mime_content_type ( $file );

                    
    $content .=  "--" . $mime_boundary . "\n" ;
                    
    $content .=  "Content-Disposition: attachment;" ;
                    
    $content .=  "\tfilename=\"" . $name . "\";\n" ;
                    
    $content .=  "Content-Length: ." . $size . ";\n" ;
                    
    $content .=  "Content-Type: " . $type . "; name=\"" . $name . "\"\n" ;
                    
    $content .=  "Content-Transfer-Encoding: base64\n\n" ;
                    
    $content .=  chunk_split ( base64_encode ( $data )). "\n" ;
                }
                
    $content  .=  "--" . $mime_boundary . "--" ;
                return 
    mail ( $to $subject $content $header );
            }
    Info: Natürlich müssen die $this-Elemente entfernt werden ich habe die Funktion nur gerade aus meinem Framework kopiert!


    Gruß Blackb!rd
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.