olli: php mail mit Anhang

Hallo und schön guten Abend,

ich weiss, das Thema ist alt, es gibt jede Menge Einträge darüber, ich habe aber totzdem ein Problem damit.

Ich habe mir gestern Abend von

http://bitworks.de/~selfHTML/mime_mail.php.txt

das Script geholt. Ich habe das dann ausprobiert, und im ersten Moment sah das gar nicht so schlecht aus. An der Mail, war eine Datei angehängt. Mit richtigem Namen( das hatte ich bei meinen eigenen Versuchen nicht hin bekommen), aber beim öffnen der Datei (test.rtf) stand in der Datei nicht drin. Was ist da falsch (schief) gelaufen??

Für eine Hilfe wäre ich Dankbar.

Gruss
Olli

  1. Hello,

    Ich habe mir gestern Abend von

    http://bitworks.de/~selfHTML/mime_mail.php.txt

    es freut mich, dass Du mir da vertraust, aber bedneke bitte, dass die Scripte alle nur Drafts sind.
    Das von Dir gezogene ist die Kurzform eines größeren Projektes und ich vermute, dass Du z.B. den Header nicht passend gesetzt haben könntest. Der wird in diesem Script nicht automatisch ermittelt (denke ich jedenfalls, ich schau gleich nochmal).

    Oder sind Daten auf dem Übertragungsweg verloren gegangen oder verfremdet worden?

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hello,

      Das von Dir gezogene ist die Kurzform eines größeren Projektes und ich vermute, dass Du z.B. den Header nicht passend gesetzt haben könntest. Der wird in diesem Script nicht automatisch ermittelt (denke ich jedenfalls, ich schau gleich nochmal).

      So ist es . Ich habe da der Einfachheit halber nur "Application/Octetstream" fest eingestanzt. Man sollte aber z.B. mittels mime_content_type() http://de2.php.net/manual/de/function.mime-content-type.php oder auch einer hier im Forum veröffentlichten Ersatzfunktion ermittelt und dann gesetzt werden.

      Außerdem müsste ich den Array-Umbau von $_FILES am Anfang mal gegen eine intelligentere Methode austauschen (auch hier veröffentlicht).

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
    2. Hallo Tom,

      ich habe das jetzt noch mal mit einer gif Datei probiert.
      Nach dem Absenden wird das angezeigt:
      From: oliver@oburdich.de
      MIME-Version: 1.0
      Content-Type: multipart/mixed; boundary="776ED8E215CF599F84933A94966FFD6E"

      This is a multi-part message in MIME format
      Dies ist eine mehrteilige Nachricht im MIME-Format

      --776ED8E215CF599F84933A94966FFD6E
      Content-Type: text/plain
      Content-Transfer-Encoding: 8bit

      1234ayhvkljas
      --776ED8E215CF599F84933A94966FFD6E
      Content-Type: application/octetstream;
              name="total.gif"
      Content-Transfer-Encoding: base64
      Content-Disposition: attachment;
              filename="total.gif"

      R0lGODlh4wKlAbMAAABCAJycnP//////////////////////////////////////////////////
      /////yH5BAEAAAQALAAAAADjAqUBAAT+kMhJq7046827/2AojmRpnmiqrmzrvnAsz3Rt33iu73zv
      /8CgcEgs

      --776ED8E215CF599F84933A94966FFD6E--
      Array
      (
          [0] => Array
              (
                  [name] => total.gif
                  [type] => image/gif
                  [tmp_name] => C:\WINNT\TEMP\php1E4.tmp
                  [error] => 0
                  [size] => 5089
              )

      [1] => Array
              (
                  [name] =>
                  [type] =>
                  [tmp_name] =>
                  [error] => 4
                  [size] => 0
              )

      )

      Ok
      Nachricht wurde versandt...

      Die Mail die ich bekommen habe, hat einen Anhang (die Gif Datei). Wenn ich die aufmache, sehe ich nur einen grünen Hinergrund. Das Bild sollte eigentlich ein Umriss von Mallorca sein.

      Gruss
      Olli

      1. Hello,

        Die Mail die ich bekommen habe, hat einen Anhang (die Gif Datei). Wenn ich die aufmache, sehe ich nur einen grünen Hinergrund. Das Bild sollte eigentlich ein Umriss von Mallorca sein.

        Dann speichere Diese Datei bitte auf der Empfängerseite und versuche die Datei dann anschließend mittels passemdem Programm zu öffnen. Wenn es dann funktioniert, liegt es am Content-Type, der ja nicht korrekt ermittelt wurde.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hey,

          das habe ich gemacht. Wird bein öffnen aber auch nicht richtig angezeigt.
          Die org Datei ist 5089 Bytes gross und die versendete ist nur 120 Bytes
          gross.

          Kann ich den Mime Type eigentlich so abfragen??

          $typ = mime_content_type($filename["name"]);

          und so setzen??

          $header .= "\nContent-Type: $typ;".
                             "\n        name="".$filename["name"].""";

          Gruss
          Oliver

          1. Hello,

            Kann ich den Mime Type eigentlich so abfragen??

            $typ = mime_content_type($filename["name"]);

            und so setzen??

            $header .= "\nContent-Type: $typ;".
                               "\n        name="".$filename["name"].""";

            Wenn die Funktion bei Dir vorhanden ist, sollte das gehen.
            Ich habe aber noch ein paar Versäumnisse gesehen im Script.
            Die Header müssten mit CRLF, also in PHP mit "\r\n" abgeschlossen werden und nicht nur mit "\n".

            Vielleicht liegt es daran?

            Außerdem solltest Du natüelich überprüfen, wieviel Bytes denn tatsächlich im Script ankommen...

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
  2. Hi!

    Es gibt auch ein PEAR-Paket mit dem das eigentlich sehr komfortabel funktioniert:
    http://pear.php.net/manual/en/package.mail.mail-mime.example.php

    Grüße
    Andreas

    --
    SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
    1. Hello,

      Es gibt auch ein PEAR-Paket mit dem das eigentlich sehr komfortabel funktioniert:
      http://pear.php.net/manual/en/package.mail.mail-mime.example.php

      Drum will man aber vielleicht trotzdem begreifen lernen, wie es denn eigentlich funktioniert.

      Aus diesem Grunde würde ich auch gerne das Simpelbeispiel noch soweit reparieren, dass es vernünftig funktioniert.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hallo!

        Es gibt auch ein PEAR-Paket mit dem das eigentlich sehr komfortabel funktioniert:
        http://pear.php.net/manual/en/package.mail.mail-mime.example.php

        Drum will man aber vielleicht trotzdem begreifen lernen, wie es denn eigentlich funktioniert.

        Klar, war ja auch nur ein Vorschlag weil ich eben weiß dass dieses Paket funktioniert, da ich es selbst oft einsetze. Manchmal will man eben was, was "einfach funktioniert", ohne das Rad neu zu erfinden. Natürlich ist es auch interessant und lehrreich selber sowas zu implementieren. Aber nicht jeder hat immer Lust und Zeit dazu ;-)

        Aus diesem Grunde würde ich auch gerne das Simpelbeispiel noch soweit reparieren, dass es vernünftig funktioniert.

        Da spricht ja nichts dagegen ;-)

        Grüße
        Andreas

        PS: Kannst ja mal in den Quelltext des PEAR-Paketes gucken was die so machen: http://cvs.php.net/pear/Mail_Mime

        --
        SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/
        1. Hello,

          PS: Kannst ja mal in den Quelltext des PEAR-Paketes gucken was die so machen:

          So grob hatte ich das damals ja auch bei verschiedenen anderen Beispielen getan.
          Es war mir auch entfallen, dass dieses Beispiel überhaupt noch im Netz stand.
          Jedenfalls sollte es besser noch einfacher anstelle von komplizierter werden...

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
    2. Moin, Moin,

      toll, da schaut man mal zwei Tage nicht ins Netz, und dann tut sich so viel.

      Danke Andreas,
      gefunden hatte ich das script schon, aber dass war mir zu komliziert.

      http://pear.php.net/manual/en/package.mail.mail-mime.example.php

      Das von Tom gefiel mir von allen gefundenen am besten. Wobei ich jetzt halt einfach das Problem habe, eine Datei ist im Anhang, mit richtigem Namen, aber ohne Inhalt.

      Gruss
      Olli

      1. Hello,

        gefunden hatte ich das script schon, aber dass war mir zu komliziert.

        http://pear.php.net/manual/en/package.mail.mail-mime.example.php

        Das von Tom gefiel mir von allen gefundenen am besten. Wobei ich jetzt halt einfach das Problem habe, eine Datei ist im Anhang, mit richtigem Namen, aber ohne Inhalt.

        Nun sollte es aber funktionieren. Ich habe es nochmal umgebaut.
        Es hat auch schon einmal funktioniert, habe da wohl mal irgendwann eine ungeprüfte Verschlimmbesserung hochgeladen...

        Nun ist es aber geprüft, und sollte auch keine wesentlichen Fehler mehr enthalten.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
  3. Hello,

    ich habe die Funktion nochmals überarbeitet.
    Es besteht aber immer noch das Problem mit CRLF.
    Wenn man, wie in der RFC gefordert, dafür auch 0Dh 0Ah benutzt, dann funktioniert die Übertragung nicht. Das kann ich mir nun noch nicht erklären, zumal ich der Meinugn bin, dass das auch mal funktioniert hat ;-)

    Siehe http://selfhtml.bitworks.de --> MIME Mail

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau