POP3: e-Mails abrufen und z.B multipart/mixed auswerten...
acid_ice
- perl
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
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
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
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
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?
Hi,
gar nicht so einfach, was du da vorhast, schau dir mal folgende Links an:
http://search.cpan.org/author/SDOWD/Mail-POP3Client-2.14/POP3Client.pm
http://search.cpan.org/author/ERYQ/MIME-tools-5.411a/lib/MIME/Parser.pm
http://search.cpan.org/author/ERYQ/MIME-tools-5.411a/lib/MIME/Entity.pm
http://www.thomas-fahle.de/pub/perl/Mail_and_News/POP3Client.html
http://www.thomas-fahle.de/pub/perl/Mail_and_News/MailHeader.html
Viel Spaß beim Studieren ;-)
Viele Grüße
Torsten
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
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
Hi,
Threadsplitting: [pref:t=53263&m=294784]
Viele Grüße
Torsten
Halihallo Siechfred
Threadsplitting: [pref:t=53263&m=294784]
Danke, hatte ich nicht gesehen.
Viele Grüsse
Philipp
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