jo: pdf als Attachement versenden geht nicht ! warum ?

hallo,

mit folgender Funktion will ich ein PDF Dokument als Attachement versenden, aber anstatt des Attachements erhalte ich immer text.
Hat jemand eine Idee was ich Falsch mache

ZB.:

boundary="<<<:5d9798ece92450e88bd3274747ef6850"
--<<<:5d9798ece92450e88bd3274747ef6850
Content-Disposition: attachment;
Content-Type: Application/pdf; name="versand.pdf"
Content-Transfer-Encoding: base64

JVBERi0xLjMKMyAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMSAwIFIKL1Jlc291cmNlcyAy
IDAgUgovQ29udGVudHMgNCAwIFI+PgplbmRvYmoKNCAwIG9iago8PC9GaWx0ZXIgL0ZsYXRl
IDAgUgovQ29udGVudHMgNCAwIFI+RGVj
b2RlIC9MZW5ndGggNDcyPj4Kc3RyZWFtCnicbZJNj9owEIbv/Io57qpi/G3HnEogq1Ja2tK0h9Ve
QnBo2mC2CWz5+TUBqrZGkRzJesaaZ+bl8HZAURn4NfgJiUIqgYZPKhQKeHI6TcJRaCi3QGYM
QnBo2mC2CWz5+TUBqrZGkRzJesaaZ+pjv4

usw...............

danke

  
function mail_att($email_to, $email_from, $email_bcc, $email_subject, $fileatt)  
 {  
  
 $mime_boundary = "<<<:" . md5(uniqid(mt_rand(), 1));  
 $data = chunk_split(base64_encode(implode("", file($fileatt))));  
  
 $header= "MIME-Version: 1.0\r\n";  
    $header.= "Content-Type: multipart/mixed;\r\n";  
 $header.= "From: ".$email_from."\r\n";  
 if($email_bcc!="")  
  {  
  $header.= "Bcc: ".$email_bcc."\r\n";  
     }  
  
 $text="boundary=\"".$mime_boundary."\"\r\n";  
  
    $text.= "--".$mime_boundary."\r\n";  
    $text.= "Content-Disposition: attachment;\r\n";  
 $text.= "Content-Type: Application/pdf; name=\"".$fileatt."\"\r\n";  
    $text.= "Content-Transfer-Encoding: base64\r\n\r\n";  
    $text.= $data."\r\n";  
    $text.= "--" . $mime_boundary . "\r\n";  
  
 if(mail($email_to, $email_subject, $text, $header))  
  { print "OK attachement 3"; }  
 else  
  { print "KO attachement"; }  
}  

    1. Hallo,

      das sieht sehr interessant aus, aber dafür müsse ich admin rechte haben um das package zu installieren damit ich auf die klassen zugreifen kann, oder ?

      danke

      1. hallo,

        einfach per ftp draufspielen, sind nur ein paar dateien, musst auf die includes achten oder den includepfad entprechend anpassen...;

        gruß,

        frankx

        1. hallo,

          einfach per ftp draufspielen, sind nur ein paar dateien, musst auf die includes achten oder den includepfad entprechend anpassen...;

          und was ist mit require_once('PEAR.php')

          Ich kann PEAR.php nirgends finden

          Ich habe nur 5 files

          • mime.php
          • mimePart.php
          • mimeDecode.php
          • xmail.dtd
          • xmail.xsl

          gruß,

          frankx

          1. hallo,

            ja, brauchst auch noch, kannste dir alles bei pear holen; hatte auch angst, dass da endlos required wird, aber da ist dann bald oder mit der pear.php dann schluss...; (is ja eine oberklasse und deswegen im unterpakte nicht drin)

            gruß

            Frankx

            1. hallo,

              ja, brauchst auch noch, kannste dir alles bei pear holen; hatte auch angst, dass da endlos required wird, aber da ist dann bald oder mit der pear.php dann schluss...; (is ja eine oberklasse und deswegen im unterpakte nicht drin)

              ich mir grade PEAR 1.4.2 gesogen.
              dort sind noch andere dareien drin.

              Brauche ich nur PEAR.PHP ??

              gruß

              Frankx

              1. dont remember,

                schau halt rein, ob dort noch mehr required oder included wird, ich hatte mir das komplett raufgepackt, aber das war woll zu über 90% sinnlos...;

                gruß, frankx

                1. dont remember,

                  schau halt rein, ob dort noch mehr required oder included wird, ich hatte mir das komplett raufgepackt, aber das war woll zu über 90% sinnlos...;

                  Weiß du warum ich diese mail jetzt nicht versenden kann
                  Bekomme folgende fehlermeldung beim aufruf von

                    
                  /**  
                  * Instanz von Mail_mail erzeugen  
                  */  
                  $mail=&Mail::factory("mail");  
                    
                  /**  
                  * Mail verschicken  
                  */  
                  $mail->send("jerome.mertes@fabelgym.com", $hdr, $body);  
                    
                  
                  

                  Fatal error: Undefined class name 'mail' in /home/.sites/64/site41/web/adm/programms/mime.php on line 41

                  gruß, frankx

                  1. naja

                    funktioniert einfach nicht,

                    habs genauso wie im beispiel gemach.

                  2. hallo,

                    Fatal error: Undefined class name 'mail' in /home/.sites/64/site41/web/adm/programms/mime.php on line 41

                    heißt, dass dir dir mailklasse fehlt...; die wiederum included wird vermutlich...;

                    das was sven schreibt trifft ja vermutlich auf deinen server auch zu, das war mir so auch noch nicht klar. dann legst du in deine php eben einen includepfad ins pear verzeichnis und es sollte gehen...;

                    gruß, frankx

                  3. hallo,

                    bei mir schauts so aus, aber ohne attachement...;

                    <?php
                    // hier steht der absolute (!) [php_info()] include-pfad zum pear verzeichnis:
                    ini_set('include_path', '.:/home/strato/www/me/www.medienbu.de/htdocs/php/pear');

                    include('Mail.php');
                    include('Mail/mime.php');
                    $output = "html-text"
                    $text = 'Text version of email';
                    $html = $output;
                    $file = '../phpordnertestrechnung.txt';
                    $crlf = "\n";
                    $hdrs = array(
                                  'From'    => 'bestellung@medienbu.de',
                                  'Subject' => 'Medienbu.de Bestellung'
                                  );

                    $mime = new Mail_mime($crlf);
                    $mime->setTXTBody($text);
                    $mime->setHTMLBody($html);
                    $mime->addAttachment($file, 'text/plain');
                    $body = $mime->get();
                    $hdrs = $mime->headers($hdrs);
                    $empfaenger = $kunde['email'].', bestellung@medienbu.de';
                    $mail =& Mail::factory('mail');
                    $mail->send($empfaenger, $hdrs, $body);
                    ?>

                    gruß, frankx

      2. Moin!

        das sieht sehr interessant aus, aber dafür müsse ich admin rechte haben um das package zu installieren damit ich auf die klassen zugreifen kann, oder ?

        Die PEAR-Pakete sind bei sehr sehr vielen PHP-Installationen schon automatisch mit dabei, ohne dass man sie extra noch mal installieren muß.

        Man kann sie tatsächlich wie in der Doku beispielhaft aufgeführt einfach mit include() einbinden - der Pfad in den Beispielen stimmt, weil PHP die PEAR-Pakete im include-Pfad enthalten hat und sich innerhalb dieser dann mit der Pfadangabe orientieren muß.

        Soll heißen: Fast jeder PHP-fähige Webspace hat automatisch immer die PEAR-Pakete include-fertig zur Verfügung, weil PEAR immer zusammen mit PHP installiert und auch konfiguriert wird.

        phpinfo() sollte dazu aber Auskunft geben können. Die Option "include_path" ist üblicherweise nicht leer, sondern zeigt z.B. auf /usr/lib/php - in diesem Verzeichnis befindet sich PEAR.php sowie diverse Unterverzeichnisse für die ganzen Pakete.

        - Sven Rautenberg

        --
        My sssignature, my preciousssss!