Kalle_B: Pdf - Datei an Mail anhängen

Hallöle,

habe eben mit fpdf (www.fpdf.de) eine pdf- Datei erzeugt und als Datei auf dem Server abgelegt.

Das PHP- Programm sendet eine Mail

mail( $empfaenger, $betreff, "<pre>\n".$mail_text."</pre>", $header );

und soll diese Datei anhängen. Gibt es dafür einen zusätzlichen Parameter? Habe unter php.net nichts gefunden.

Lieben Gruß, Kalle

  1. Hi,

    und soll diese Datei anhängen. Gibt es dafür einen zusätzlichen Parameter? Habe unter php.net nichts gefunden.

    IMHO kannst Du nicht finden, weil es nicht möglich ist

    Gruss

    Maulwurf

  2. Moin Kalle_B,

    und soll diese Datei anhängen. Gibt es dafür einen zusätzlichen Parameter? Habe unter php.net nichts gefunden.

    wenn Du hier ein bißchen stöberst, solltest Du Dein Problem lösen können:
    http://forum.de.selfhtml.org/archiv/2005/9/t114451/#m729562

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. Hi,

      wenn Du hier ein bißchen stöberst, solltest Du Dein Problem lösen können:
      http://forum.de.selfhtml.org/archiv/2005/9/t114451/#m729562

      Danke. Auch wenn nicht der OP bin, habe ich etwas dazu gelernt

      Gruss

      Maulwurf

      1. Moin Maulwurf,

        Danke. Auch wenn nicht der OP bin, habe ich etwas dazu gelernt

        *FREU*

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
    2. Moin Mike©,

      danke für den Link. Habe den Code kopiert und studiere ihn gerade.

      Kalle.

      1. Moin Kalle_B,

        danke für den Link. Habe den Code kopiert und studiere ihn gerade.

        aber bitte nicht vergeßen den im Thread geklärten Fehler zu verbessern. Hmmm, ist der noch im geposteten Skript; Ich glaube ja.
        Ansonsten ist diese Script eine feine Sache.

        Und nochmal expilziet erwähnt, es ist nicht mein Script!

        Have fun.

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
        1. Hallo, Mike©,

          was ist $IFile in der Zeile

          function SendMail($ToReceiver, $FromSender, $Subject, $MsgText, $IFile="none", $IFileName="none")

          Habe den File- Inhalt geschickt:

          $IFileName = 'pdf/terminplan.pdf';
            $IFile     = file( $dateiname );

          Das scheint falsch zu sein, denn die Funktion erkennt auf "Array" und läuft beim Auseinandernehmen auf den Fehler

          for ( $i=0; $i<count($IFile); $i++ )
                {
          echo "i=[".$i."] ";
                $File[$i]     = $IFile[$i];
                $FileName[$i] = $IFileName[$i]; // Zeile 36
                }

          "Warning: Illegal string index in tm133.php on line 36"

          Kalle

          1. echo $begrüßung;

            $IFileName = 'pdf/terminplan.pdf';
              $IFile     = file( $dateiname );

            Für eine Binärdatei dürfte file() nicht die geeignete Funktion sein.

            Das scheint falsch zu sein, denn die Funktion erkennt auf "Array" und läuft beim Auseinandernehmen auf den Fehler

            for ( $i=0; $i<count($IFile); $i++ )
                  {
            echo "i=[".$i."] ";
                  $File[$i]     = $IFile[$i];
                  $FileName[$i] = $IFileName[$i]; // Zeile 36
                  }
            "Warning: Illegal string index in tm133.php on line 36"

            Die Länge des Strings in $IFileName ist sicherlich nicht so lang wie count($IFile), weswegen es ab einem genügend großem $i zu dieser Warnung kommt.

            echo "$verabschiedung $name";

            1. echo $begrüßung;

              Für eine Binärdatei dürfte file() nicht die geeignete Funktion sein.

              okay, habe es mit reradfile() probiert.

              Jetzt kommt die Mail mit Anhang an. Ein Schritt in die richtige Richtung.

              Aber beim Öffnen mit dem Adobe Reader kommt die Meldung:

              "Adobe Reader konnte .. nicht öffnen, da der Dateityp nicht unterstützt wird oder die Datei beschädugt ist (z.B. wenn sie als E-Mail Anhang geschickt und nicht korrekt dekodiert wurde)."

              Zwei Zeilen in der Funktion kommen mir verdächtig vor:

              /* encode gibt fehler beim Lesen des anhangs
                          $attach  .= TextEncode($File[$i])."\n";
              */
                          $attach  .= $File[$i]."\n";
              /*
                    $attheaders .= "Content-transfer-encoding: 7BIT\n";
              */

              Aber die Zeile mit 7BIT\n kann man wohl nicht einfach weglassen um eine 8-Bit-Codierung zu erreichen?

              Kalle

              1. Tach...

                $attach  .= TextEncode($File[$i])."\n";

                Habe mir das komplette Script nicht angesehen, aber: codiert man Anhänge nicht mit base64? TextEncode ist wohl selbst geschrieben? Jedenfalls kann man auch Textdateien mit base64 codieren - sie werden nur "größer"

              2. hi,

                okay, habe es mit reradfile() probiert.

                Wie bist du denn auf diese blöde Idee gekommen?

                readfile gibt den Inhalt der Datei direkt an der Stelle aus, wo es steht (bzw. ggf. auch in den output buffer).

                Was glaubst du, kann dein Script an der Stelle mit den Daten anfangen?

                Aber beim Öffnen mit dem Adobe Reader kommt die Meldung:

                "Adobe Reader konnte .. nicht öffnen, da der Dateityp nicht unterstützt wird oder die Datei beschädugt ist (z.B. wenn sie als E-Mail Anhang geschickt und nicht korrekt dekodiert wurde)."

                Oder weil dummerweise die Ausgabe von readfile an einer Stelle steht, wo sie absolut keinen Sinn ergibt.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
          2. Moin Kalle_B,

            was ist $IFile in der Zeile

            function SendMail($ToReceiver, $FromSender, $Subject, $MsgText, $IFile="none", $IFileName="none")

            $IFile     = file( $dateiname );

            Hier kommt der Name der Datei rein:
            $IFile='datei.pdf';

            Der Aufruf könnte dann so aussehen:

              
            $image_file='datei.pdf';  
            $image_name='Eine PDF Datei';  
              
            SendMail($Send_To, $Sender, $Subject, $Msg_Text, $image_file, $image_name);  
            
            

            regds
            Mike©

            --
            Freunde kommen und gehen. Feinde sammeln sich an.
            1. Moin Mike©,

              [code lang=php]
              $image_file='datei.pdf';
              $image_name='Eine PDF Datei';

              Das war der entscheidende Hinweis. Dass man unter "file" nur den Namen des Files zu verstehen hat, muss einem ja gesagt werden.

              Es haut hin, der Mailanhang ist mit dem Acrobat Reader zu lesen.

              Vielen Dank.

              Kalle