Ankündigung

Einklappen
Keine Ankündigung bisher.

datei upload und per email senden

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

  • datei upload und per email senden

    hallo zusammen,

    versuche seit ein paar stunden ein php script zu bauen, was mir ermöglicht, die Datei aus dem übergebenen pfad von html einen upload zu generieren und das dann an eine email als attachment zu hängen....

    irgendwie geht das ganze nicht so, wie ich mir das vorstelle...
    ----- Auszug aus meinem Code-----
    echo $bild_html;

    ##Bild lesen & kodieren
    $bild=fopen($bild_html,r);
    $groesse=filesize("$bild_html");
    $bilddatei=fread($bild,$groesse);
    $bild_email=chunk_split(base64_encode($bilddatei)) ;
    fclose($bild);
    ##Fertig Bild ist in $bild_email

    $empfaenger="meine@email.de";
    $betreff="meine erste Mail mit Bild";

    $mitteilung="Hallo du";
    $header="MIME-Version: 1.0\r\n"
    ."Content-Type: multipart/mixed; boundary=\"BOUND\" \r\n";
    $body= "Dies ist etwas Text\r\n"
    ."\r\n"

    ."--BOUND\r\n"
    ."Content-Type:text/plain; charset=iso-8859-1 \r\n"
    ."Content-Disposition: inline \r\n"
    ."Content-Transfer-Encoding: 7bit \r\n"
    ."\r\n"
    ."$mitteilung"
    ."\r\n"

    ."--BOUND\r\n"
    ."Content-Type:image/gif; name=\"bild.gif\" \r\n"
    ."Content-Description:\"Ein Bild\" \r\n"
    ."Content-Transfer-Encoding: base64 \r\n"
    ."Content-Disposition: attachment \r\n"
    ."\r\n"
    ."$bild_email\r\n"
    ."\r\n"
    ."--BOUND\r\n";

    mail($empfaenger, $betreff, $body, $header);

    -----------------------------------------------------------------------------------------

    sieht da jemand einen fehler oder hat schon sowas fertig, und könnte es mir vielleicht zu mailen...
    danke,
    gruß marcus


  • #2
    ein Skriptgesuch?

    Was genau funktioniert denn nicht?
    Aufstrebend, kompetent und [b]werbefrei[/b].
    :arrow: [b][url=http://www.developers-guide.net]www.developers-guide.net[/url][/b]

    Kommentar


    • #3
      also die email wird gesendet...
      -------------------------------------------------------------------------------------------------
      Content-Type: multipart/mixed; boundary="BOUND"

      Message-Id: <20041125132818.941107FFA@rechner.de>
      Date: Thu, 25 Nov 2004 14:28:18 +0100 (CET)
      From: wwwrun@rechner.de (WWW daemon apache)
      Return-Path: wwwrun@rechner.de
      X-OriginalArrivalTime: 25 Nov 2004 13:27:57.0238 (UTC) FILETIME=[93893D60:01C4D2F2]
      Dies ist etwas Text
      --BOUND

      Content-Type:text/plain; charset=iso-8859-1
      Content-Disposition: inline
      Content-Transfer-Encoding: 7bit
      Hallo Welt
      --BOUND
      Content-Type:image/gif; name="bild.gif"
      Content-Description:"Ein Bild"
      Content-Transfer-Encoding: base64
      Content-Disposition: attachment
      --BOUND
      ---------------------------------------------------------------------------
      ich würde gerne nicht mehr den text haben, sondern das attachment

      Kommentar


      • #4
        also funktioniert nun alles?
        Ich habe das Problem noch nicht erkannt...


        btw: bitte benutze die php-tags.
        Aufstrebend, kompetent und [b]werbefrei[/b].
        :arrow: [b][url=http://www.developers-guide.net]www.developers-guide.net[/url][/b]

        Kommentar


        • #5
          okay... ich versuche mal ausführlich alles zu beschreiben...

          ich habe ein formular, was verschiedene störungen beschreibt, die ein user anklicken kann...
          wenn dies alles erfolg ist, sollte der user ein screenshot von seiner störung machen und die upload-funktion in seinem formular nehmen (<input type="file"...>)...
          der pfad dieser Datei soll an mein PHP-Script übergeben werden und dort so verarbeitet werden,
          das ich am ende, die email mit den störungen und die datei als attachment (das screenshot) versenden kann...
          ich hoffe jetzt habe ich es deutlicher ausgedrückt..
          gruß marcus

          Kommentar


          • #6
            hat keiner eine Idee dazu???
            habe mal bei http://www.php4-forum.de nach gesehen...
            da habe ich mir beispiele für die MIME geholt, aber daran scheint es nicht zu liegen...

            ------------------Code------------------------
            $empfaenger="ich@ich.de";
            $betreff="meine erste Mail mit Bild";

            $header ="MIME-Version: 1.0\r\n"
            ."Content-Type: multipart/mixed; boundary=4BC48A1C8272858A7BAF9DF8782062C2"
            ."\n\n";
            $boundary = strtoupper(md5(uniqid(time())));
            $body="--4BC48A1C8272858A7BAF9DF8782062C2"
            ."\r\n"
            ."Content-Type: text/plain\r\n"
            ."Content-Transfer-Encoding: 8bit\r\n"
            ."Hallo, im Anhang findest du eine Datei!"
            ."\r\n"
            ."--4BC48A1C8272858A7BAF9DF8782062C2\r\n"
            ."Content-Type: application/x-zip-compressed; name='screensh.jpg'\r\n"
            ."Content-Transfer-Encoding: base64\r\n"
            ."Content-Disposition: attachment; filename=".$bild_html
            ."\r\n"
            .$dateiname=$bild_html
            ."\r\n"
            .$datei_inhalt=chunk_split(base64_encode(fread(fop en($dateiname, "r"), filesize($dateiname))))
            ."\r\n"
            ."--4BC48A1C8272858A7BAF9DF8782062C2--";
            mail($empfaenger, $betreff, $body, $header);
            -----------------------------------------------------------------------------------------
            bekomme dann komischerweise eine fehlermeldung:

            --------------------------------------------------------------------------------------
            Triangel II.jpg
            Warning: fread(): supplied argument is not a valid stream resource in /home/mri/public_html/v2/php/sf.php on line 138
            --------------------------------------------------------------------------------------
            kann mir da vielleicht jemand helfen???
            die email wird generiert, geht auch raus...

            Kommentar


            • #7
              Zitat von jepp1983
              hat keiner eine Idee dazu???
              Lern lesen! Besonders Fehlermeldungen...

              bekomme dann komischerweise eine fehlermeldung:
              Triangel II.jpg
              Warning: fread(): supplied argument is not a valid stream resource in /home/mri/public_html/v2/php/sf.php on line 138
              Du versuchst eine Datei zu lesen, für die Du kein gültiges Handle hast.

              Kommentar


              • #8
                danke... hatte ich aber bereits schon zu diesem zeitpunkt gelöst...
                war nach stundenlanger codeanalyse schon fast blind geworden... aber ein paar min. ablenkung haben mir dann geholfen...
                trotzdem danke... bei denen, die mir helfen wollten

                Kommentar


                • #9
                  Code:
                  $datei_inhalt=chunk_split(base64_encode(fread(fopen($dateiname, "r"), filesize($dateiname))))
                  Kannst du das nicht *vielleicht* ein ganz kleines bisschen übersichtlicher gestalten?

                  Kommentar


                  • #10
                    Zitat von Michigras
                    Code:
                    $datei_inhalt=chunk_split(base64_encode(fread(fopen($dateiname, "r"), filesize($dateiname))))
                    Kannst du das nicht *vielleicht* ein ganz kleines bisschen übersichtlicher gestalten?
                    Die Übersichtlichkeit ist aber nicht das Problem. Viel wichtiger wäre es, wenn er vorher das so machen würde:
                    Code:
                    if (is_readable($dateiname))
                      $datei_inhalt=chunk_split(base64_encode(fread(fopen($dateiname, "r"), filesize($dateiname))));
                    Das vermeidet die Fehlermeldung, wenn PHP $dateiname nicht findet.

                    Kommentar


                    • #11
                      okay, danke für den tipp...
                      hatte alles freitag nacht schon fertig...
                      aber die prüfung noch nicht drin, danke

                      Kommentar


                      • #12
                        Bitte um Hilfe

                        Hallo,

                        ich bin php Einsteiger und haber versucht das ganze hier zu rekapitulieren und mir für meinen zweck das ganze zu schreiben. Leider bekomme ich immer eine Fehlermeldung. Ich möchte eine Datei Hochladen und diese mir dann per email schicken lassen im Anhang:

                        Fehlermeldung:

                        Bildschirmfoto.png
                        Warning: fopen(Bildschirmfoto.png) [function.fopen]: failed to open stream: No such file or directory in /var/www/web316/html/test/datei_mailer.php on line 6

                        Warning: filesize() [function.filesize]: stat failed for Bildschirmfoto.png in /var/www/web316/html/test/datei_mailer.php on line 7

                        Warning: fread(): supplied argument is not a valid stream resource in /var/www/web316/html/test/datei_mailer.php on line 8

                        Warning: fclose(): supplied argument is not a valid stream resource in /var/www/web316/html/test/datei_mailer.php on line 10

                        hier mein PHP:

                        PHP-Code:
                        <?php
                        $bild_html 
                        $_POST["bild_u"];
                        echo(
                        $bild_html);

                        ##Bild lesen & kodieren
                        $bild=fopen($bild_html,r);
                        $groesse=filesize("$bild_html");
                        $bilddatei=fread($bild,$groesse);
                        $bild_email=chunk_split(base64_encode($bilddatei)) ;
                        fclose($bild);
                        ##Fertig Bild ist in $bild_email


                        $empfaenger="test@test.com";
                        $betreff="Meine erste Mail mit Bild";

                        $header    ="MIME-Version: 1.0\r\n"
                        ."Content-Type: multipart/mixed; boundary=4BC48A1C8272858A7BAF9DF8782062C2"
                        ."\n\n";
                        $boundary strtoupper(md5(uniqid(time())));
                        $body "--4BC48A1C8272858A7BAF9DF8782062C2"
                        ."\r\n"
                        ."Content-Type: text/plain\r\n"
                        ."Content-Transfer-Encoding: 8bit\r\n"
                        ."Hallo, im Anhang findest du eine Datei!"
                        ."\r\n"
                        ."--4BC48A1C8272858A7BAF9DF8782062C2\r\n"
                        ."Content-Type: application/x-zip-compressed; name='screensh.jpg'\r\n"
                        ."Content-Transfer-Encoding: base64\r\n"
                        ."Content-Disposition: attachment; filename=".$bild_html
                        ."\r\n"
                        ."\r\n"
                        .$bild_email
                        #.$datei_inhalt=chunk_split(base64_encode(fread(fopen($bild_html, "r"), filesize($bild_html))))
                        ."\r\n"
                        ."--4BC48A1C8272858A7BAF9DF8782062C2--";
                        mail($empfaenger$betreff$body$header);
                        ?>
                        und hier der HTML Code:

                        Code:
                        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                        <html xmlns="http://www.w3.org/1999/xhtml">
                        <head>
                        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                        <title>Unbenanntes Dokument</title>
                        </head>
                        
                        <body>
                        <form id="form1" name="form1" method="post" action="datei_mailer.php">
                          Datei
                        <input type="file" name="bild_u" id="bild_u" />
                        <input name="submit" type="submit" />
                        </form>
                        </body>
                        </html>

                        Kommentar


                        • #13
                          Mach doch bitte einen neuen Thread auf, anstatt einen 7 Jahre alten Thread auszugraben
                          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                          Kommentar


                          • #14
                            Mittlerweile gibts doch auch genug fertige Mailer-Klassen mit deren Hilfe das alles kein Problem mehr ist.


                            Swiftmailer

                            Kommentar


                            • #15
                              die Fehlermeldungen besagen aber eindeutig, dass er noch gar nicht zum Bild VERSENDEN kommt - weil sein "Pfad" falsch ist ...

                              Grundlagen - wie wird ein Upload über ein Formular behandelt ... Tipp : das Bild ist nicht Bestandteil der "normalen" Post-Daten ...

                              und dein Formular hat nicht alle nötigen Informationen (das form-Element braucht noch eine zusätzliche Angabe zum übermitteln eines Uploads .... )
                              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                              Kommentar

                              Lädt...
                              X