acid_ice: POP3: e-Mails abrufen und z.B multipart/mixed auswerten...

moin moin,

ich arbeite derzeit an einem e-Mail Messenger, bei dem man sämtliche seiner e-Mail Accounts einrichten und über ein Web-Interface abrufen kann. Das funktioniert auch alles wunderbar, nur habe ich jetzt noch ein kleines Problem mit Multipart Mails.

Die Frage lautet:
Wie verwerte ich eine e-Mail, die einen HTML Quelltext, Anlagen, etc. enthält so, dass sie im Browser so erscheint, wie es vom Absender gewollt war.
In der Theorie habe ich mir überlegt, als erstes die vereinfachte text/plain Version anzuzeigen und über einen extra Link auch die text/html Version in einem neuen Fenster auszugeben, nur weiß ich nicht wie ich dies umsetzen soll. (also aufsplitten der Mail in plain, HTML, und Attachment, ...)

Hat jemand einen Vorschlag, eine Alternative, o.Ä.?

Gruß und schonmal danke,
acid_ice

  1. Hallo,

    wie es vom Absender gewollt war.

    ohne technisch auf Dein Problem eingehen zu können, würde ich auf jeden Fall überlegen, statt dem Absender dem _Empfänger_ stets die Wahl zu lassen, was er sehen möchte. Wenn _er_ html-Mails grundsätzlich zulassen möchte, sollte er diese Möglichkeit haben (und auch vernünftig dargestellt ;-) ). Wenn er das nicht möchte, sollten die Textteile der Multipart-Mail angezeigt werden.

    Schöne Grüße aus Köln-Ehrenfeld,

    Elya

    --
    We are still confused, but on a higher level.
    1. Moin!

      ohne technisch auf Dein Problem eingehen zu können, würde ich auf jeden Fall überlegen, statt dem Absender dem _Empfänger_ stets die Wahl zu lassen, was er sehen möchte. Wenn _er_ html-Mails grundsätzlich zulassen möchte, sollte er diese Möglichkeit haben (und auch vernünftig dargestellt ;-) ). Wenn er das nicht möchte, sollten die Textteile der Multipart-Mail angezeigt werden.

      Volle Zustimmung. Da tut sich ein ganz ganz weites Feld auf!

      Eine ungeprüfte Anzeige zugesandter HTML-Mails ist als grob fahrlässig anzusehen. Da kann einiger Schaden angerichtet werden.

      Das beginnt mit der simplen <IMG>-Lesebestätigung für Spammer (Bild mit einer ID in der URL wird von einem fremden Server geladen, die den Erhalt der Mail bestätigt).

      Das geht weiter mit der Möglichkeit, Javascript-Nervkram einzubinden (z.B. tausend Fenster gleichzeitig zu öffnen).

      Und das hört mit der automatischen Weiterleitung auf Dialer-Installationsseiten sicherlich noch lange nicht auf.

      Alle großen Webmail-Anbieter haben reichlich Maßnahmen ergriffen, damit es zu diesen GAUs nicht kommt. Also spricht eigentlich nicht viel dagegen, HTML-Mails direkt im Quelltext zu zeigen - genauso wie sie auch in vielen normalen Mailclients erscheinen. :)

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Hallo Sven,

        Alle großen Webmail-Anbieter haben reichlich Maßnahmen ergriffen, damit es zu diesen GAUs nicht kommt. Also spricht eigentlich nicht viel dagegen, HTML-Mails direkt im Quelltext zu zeigen - genauso wie sie auch in vielen normalen Mailclients erscheinen. :)

        Als gelegentlicher Hersteller von Newslettern (natürlich nur via Double Opt In angefordert und Multipart) würde ich soweit jetzt wieder nicht gehen. Ich fände es gut, wenn bei _erwünschten_ html-Mails die Darstellung auch OK wäre. Hier tut sich nämlich ein extrem weites Feld an Varianten auf (da wünscht man sich zurück in die gute alte Zeit der Browserkriege ;-) )

        Ansonsten reicht ja in der Tat die Übermittlung der Textmail. Und ich möchte beim meinem Kunden lieber eine ordentliche Textmail als eine völlig zerhackte html-Mail ankommen lassen! Blöd ist halt, wenn Du Multipart verschickst und der Client auf Teufel komm raus irgendeine krumme html Seite darstellt...

        Und: ich liebe den wunderbar puristischen Text-Newsletter von http://www.krit.de

        Schöne Grüße aus Köln-Ehrenfeld,

        Elya

        --
        We are still confused, but on a higher level.
        1. danke für die Antworten, nur leider weiß ich jetzt immer noch nicht, wie ich es technisch lösen sollte...

          das ist mein eigentlich Problem ... wie erkenne ich ob und wo HTML Bereich ist und wo nur eine Plain-Mail vorliegt?

            1. moin,

              ich habs jetzt ohne die module hinbekommen. zumindest was die html und plain darstellung angeht. funktioniert ganz gut.

              letztes problem von mir ist nun nur noch die auswertung der attachments. welches modul sollte ich dafür nehmen? mir mangelt es wohl an notwendigem fachwissen um die entsprechenden docu's auf cpan richtig zu interpretieren...

              ich wäre um ein bisschen hilfe sehr dankbar!

              gruß,
              acid_ice

              1. Halihallo acid_ice

                letztes problem von mir ist nun nur noch die auswertung der attachments. welches modul sollte ich dafür nehmen? mir mangelt es wohl an notwendigem fachwissen um die entsprechenden docu's auf cpan richtig zu interpretieren...

                Mit Mail::POP3Client kannst du die Mails einlesen, diese Daten übergibst du dem
                MIME::Parser, dieser retourniert nach erfolgreichem parsen eine MIME::Entity-Instanz,
                welche weitere MIME::Entity's enthält (s. Methode part()). Jede MIME::Entity hat einen
                Header und einen Body, im Header stehen MIME-Typ und Dateiname (z.B.) im Body die
                entsprechende (kodierte) Datei.

                Iteriere über alle parts des Top (welches du über MIME::Parser kriegst) MIME::Entity,
                so iterierst du über alle "Dateien" innerhalb des Mails. Was meinst du mit auswerten?

                Viele Grüsse

                Philipp

                --
                RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
                Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
                1. Hi,

                  Threadsplitting: [pref:t=53263&m=294784]

                  Viele Grüße
                  Torsten

                  1. Halihallo Siechfred

                    Threadsplitting: [pref:t=53263&m=294784]

                    Danke, hatte ich nicht gesehen.

                    Viele Grüsse

                    Philipp

                    --
                    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
                    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
                    1. Hi Philipp,

                      Threadsplitting: [pref:t=53263&m=294784]
                      Danke, hatte ich nicht gesehen.

                      Das ist der Grund, weshalb Doppelpostings eigentlich unerwünscht sind :)

                      Viele Grüße
                      Torsten