eMail mit Anhang

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

  • eMail mit Anhang

    Hallo Leute,

    ich habe nun das Forum durchstöbert, tausende von
    Lösungen gefunden, jedoch keine davon verstanden.

    Ich möchte gerne eine eMail mit Anhang verschicken,
    meine aktuellen Header :

    PHP-Code:
      $message "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
       
    $message .= "<HTML><BODY bgcolor=".$bgcolor.">\n";
       
    $message .="<font color =".$txtcolor." size=".$size.">".$text."</font>";
       
    $message .= "</BODY></HTML>\n";
       
    $message .= "\n";
       
    $header "From: ".$_POST['from_name']." <".$_POST['from_mail'].">\r\n";
       
    $header.= "To: ".$_POST['to_mail']."\r\n";
       
    $header.= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
       
    $header.= "MIME-Version: 1.0\r\n";
       
    $header.= "X-Mailer: PHP "phpversion();

       
    mail($to_mail$betreff$message$header); 
    wir nehmen nun mal an im Formular wird die Datei als
    -> ' $anhang ' <- dekleriert, wie muss ich den Header nun
    ändern ? Für Hilfe wäre ich dankbar, denn ich habe fast nur
    Classen gefunden und damit kenne ich mich überhaupt nicht aus.

    Ach so ....

    ....
    PHP-Code:
    $header.= "Content-Type: text/html\r\nContent-Transfer-Encoding: 
    dieser Header muss dabei bestehn bleiben,
    da ich eine Auswahl zwischen HTML und TEXT mail habe.

    Gruss und Danke Ela

  • #2
    da gibts doch ne super klasse für ich glaub hier im Board sogar in den codeschnipseln
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      im zweifelsfall:

      http://sourceforge.net/projects/phpmailer

      Kommentar


      • #4
        @MelloPie
        Du meinst bestimmt diese: http://www.php-resource.de/forum/sho...threadid=16660
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          Joa die meinte ich.
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Jo, danke für die Antworten, jedoch bekomme
            ich das mit den Classen einfach nicht hin, habe
            davon auch keine Ahnung.

            Gibt es nicht 'ne einfache Möglichkeit ?

            Gruss und Danke Ela

            Kommentar


            • #7
              du kannst die fertige klasse doch (fast) genauso benutzen wie normale fkts. das ist imho einfacher.

              Kommentar


              • #8
                Da sind aber die $this-> ... die ich kapiere.

                So wie ich das sehe benötige ich folgenden Teil aus der Classe :
                PHP-Code:
                if(is_file($datei))
                 {
                  
                $attachment_header '--'.$this->emailboundary."\r\n" ;
                  
                $attachment_header .= 'Content-Type: application/octet-stream; name="'.basename($datei).'"'."\r\n";
                  
                $attachment_header .= 'Content-Transfer-Encoding: base64'."\r\n";
                  
                $attachment_header .= 'Content-Disposition: attachment; filename="'.basename($datei).'"'."\r\n\r\n";
                  
                $file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei));
                  
                $file['inhalt'] = base64_encode($file['inhalt']);
                  
                $file['inhalt'] = chunk_split($file['inhalt'],72);
                  
                $this->attachment[] = $attachment_header.$file['inhalt']."\r\n";
                 }  else  {
                  die(
                'Die Datei "'.$datei.'" existiert nicht...'."\r\n");
                 } 
                Ich gehe mal davon aus dass ich hier nur die Angabe ' $datei '
                für diese Funktionen benötige, dass über ein Formular eingelesen
                werden kann.

                Mein derzeitiger Header sieht so aus :
                PHP-Code:
                if ( $format == "html" ) {

                   
                $text=stripslashes($text);
                   
                $text=nl2br($text);

                   
                $message "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
                   
                $message .= "<HTML>";
                   
                $message .= " <!--  Hallo " $to_mail "   Ihr System unterstuetzt keine HTML-Mails!";
                   
                $message .= " Folgende Nachricht wurde Ihnen uebermittelt: " $text "  -->";
                   
                $message .= "<BODY bgcolor=".$bgcolor.">\n";
                   
                $message .="<font color =".$txtcolor." size=".$size.">".$text."</font>";
                   
                $message .= "</BODY></HTML>\n";
                   
                $message .= "\n";
                   
                $header "From: ".$_POST['from_name']." <".$_POST['from_mail'].">\r\n";
                   
                $header.= "To: ".$_POST['to_mail']."\r\n";
                   
                $header.= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
                   
                $header.= "MIME-Version: 1.0\r\n";
                   
                $header.= "X-Mailer: PHP "phpversion();

                   
                mail($to_mail$betreff$message$header);

                } else {

                   
                $header "From: ".$_POST['from_name']." <".$_POST['from_mail'].">\r\n";
                   
                $header.= "To: ".$_POST['to_mail']."\r\n";
                   
                $header .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
                   
                $header .= "MIME-Version: 1.0\r\n";
                   
                $header.= "Content-Transfer-Encoding: quoted-printable\n";
                   
                $header .= "\n";

                   
                mail($to_mail,$betreff,$text,$header);

                Hier wird zwischen HTML und Plain-Mail unterschieden,
                nur wie binde ich nun z.B. -> Content-Type: application/octet-stream <- ein ohne diese Unterscheidung zu zerstören.

                Ich müsste mit einer IF-Schleife fragen, ob eine Datei angegeben wurde, dann muss abgefragt werden ob HTML oder Plain, dass sollte auch nicht das Problem sein, jedoch wenn ich den Header mit dem Content-Type in diesem Script dekleriere, dann kann ich ja nicht sagen ob HTML oder Plain.

                Oder sehe ich das falsch und dann müste ich ja noch eine maximale Grösse der Datei begrenzen können um die Serverlast zu schützen.

                Für Hilfe wäre ich dankbar

                Gruss Ela

                Kommentar


                • #9
                  Den Teil den du da oben aus der Klasse rauskopiert hast ist nur dafür zuständig eine Datein einzulesen und in das Base64 Format zu encodieren!!!
                  mfg
                  Günni


                  Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
                  Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
                  Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
                  City-Tiger - Online durch die Straßen tigern...

                  Kommentar


                  • #10
                    http://de2.php.net/manual/de/ref.mail.php
                    schau da mal bei den kommentaren, da ist ne funktion beschrieben, mit der man emails mit anhang bzw mehreren anhängen senden kann.
                    Just another bit of chaos engineered
                    by dD

                    Kommentar


                    • #11
                      .... warum schaffe ich es nicht bis heute ein eMailheader zu basteln,
                      mit dem ich Anhänger versenden kann. Ich hatte mir den Link im letztem
                      Post Mal genau angeschaut, da ist eigentlich was brauchbares drin aber dann wieder nur für ein Bild als Anhang.

                      Ich mache und Frage Mal wirklich sehr ungern aber ich sitze nun
                      schon so lange vor diesem Problem, kann mir vielleicht jemand
                      mein Header umbauen - Sorry für die Frage und mir den Umbau
                      dokumentieren, damit ich an dem Beispiel meines Headers lernen kann, denn den kenne ich inzwischen schon sehr gut.
                      PHP-Code:

                        $text
                      =stripslashes($text);
                         
                      $text=nl2br($text);
                         
                      $message "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\n";
                         
                      $message .= " <!--  Hallo " $to_mail "   Ihr System unterstuetzt keine HTML-Mails!";
                         
                      $message .= " Folgende Nachricht wurde Ihnen uebermittelt: ".$text."  -->";
                         
                      $message .= "<p>\n";
                         
                      $message .= $text;
                         
                      $message .= "<p>\n";
                         
                      $message .= "\n";
                         
                      $header "From: ".$_POST['from_name']." <".$_POST['from_mail'].">\r\n";

                         
                      $header.= "Content-Type: text/html\r\nContent-Transfer-Encoding: 8bit\r\n";
                         
                      $header.= "MIME-Version: 1.0\r\n";
                          
                      mail($to_mail$betreff$message$header); 
                      Wäre wirklich Super, denn von Classen habe ich gar keine Ahnung.

                      B I T T E - Danke und Gruss Ela

                      Kommentar

                      Lädt...
                      X