Text aus Email Nachrichten Body filtern

Text aus Email Nachrichten Body filtern

am 18.05.2007 10:37:08 von Phase GmbH

Hallo,

ich suche nach einem einfachen Verfahren, um lediglich die Textinformation
aus dem Nachrichten Body herauszufiltern, um sie dann etwa für eine
WAP-Seite zur Verfügung zu stellen. Etwaige Anhänge und Bilder, die der Mail
beigefügt sein können, sollen dadurch zuverlässig herausgefilter und für
die WAP-Seite wegelassen werden.

Bisher habe ich mit Modul NET::POP3 die Mails erfolgreich angepackt und muß
nun noch die gewünschte Filterung durchführen. Da eine solche Filterung
sicher schon einmal erarbeitet worden ist, wäre ich für hilfreiche Tipps
dankbar.

MfG

Christian

Re: Text aus Email Nachrichten Body filtern

am 18.05.2007 11:01:20 von Moritz Lenz

Hallo,

Phase GmbH wrote:
^^^^^^^^^^
Real Names werden hier gerne gesehen

> ich suche nach einem einfachen Verfahren, um lediglich die Textinformat=
ion=20
> aus dem Nachrichten Body herauszufiltern, um sie dann etwa für eine =

> WAP-Seite zur Verfügung zu stellen. Etwaige Anhänge und Bilder, die=
der Mail=20
> beigefügt sein können, sollen dadurch zuverlässig herausgefilter=
und für=20
> die WAP-Seite wegelassen werden.

Hast du dir mal Mail::Internet angeschaut? die Funktion body() sieht
vielversprechend aus, ich hab mir aber bisher nicht durchgelesen, ob es
das tut was du willst. Oder Mail::Message

Ansonsten einfach mal CPAN nach Mail durchsuchen, sind unter 2000
Ergebnisse ;-)

Oder nach Mail und Body suchen, sind immer noch über 300 ;-)

Grüße,
Moritz

--=20
Moritz Lenz
http://perl-6.de/ http://moritz.faui2k3.org/

Re: Text aus Email Nachrichten Body filtern

am 18.05.2007 11:08:43 von Reinhard Pagitsch

Hallo,

Phase GmbH wrote:
> Hallo,
>=20
<

>=20
> Bisher habe ich mit Modul NET::POP3 die Mails erfolgreich angepackt und=
muß
> nun noch die gewünschte Filterung durchführen. Da eine solche Filte=
rung=20
> sicher schon einmal erarbeitet worden ist, wäre ich für hilfreiche =
Tipps=20
> dankbar.
>=20

Also ich verwende Mail::MboxParser, aber da sind die Mails bereits lokal =

gespeichert. Aber wie ich sehe kann das Modul auch array und scalar refs
verarbeiten.

Grüße,
REinhard


--=20
PM Mails an rpirpag gmx dot at

Re: Text aus Email Nachrichten Body filtern

am 18.05.2007 11:11:51 von Ray Banana

Also sprach "Phase GmbH"

> ich suche nach einem einfachen Verfahren, um lediglich die Textinformation
> aus dem Nachrichten Body herauszufiltern, um sie dann etwa für eine
> WAP-Seite zur Verfügung zu stellen. Etwaige Anhänge und Bilder, die der Mail
> beigefügt sein können, sollen dadurch zuverlässig herausgefilter und für
> die WAP-Seite wegelassen werden.

Das sollte mit MIME::Entity darstellbar sein:

--
Too many ingredients in the soup, no room for a spoon.
http://news.motzarella.org

Re: Text aus Email Nachrichten Body filtern

am 18.05.2007 13:11:08 von Peter Velan

am 18.05.2007 10:37 schrieb Phase GmbH:
> ich suche nach einem einfachen Verfahren, um lediglich die Textinformation
> aus dem Nachrichten Body herauszufiltern, um sie dann etwa f�r eine
> WAP-Seite zur Verf�gung zu stellen. Etwaige Anh�nge und Bilder, die der Mail
> beigef�gt sein k�nnen, sollen dadurch zuverl�ssig herausgefilter und f�r
> die WAP-Seite wegelassen werden.

Ich nutze:

use MIME::Entity;
use MIME::Explode;

Erst zerlege ich die E-Mail ...

my $explode = MIME::Explode->new(
outdir => 'out-path'
, check_content_type => 1
);
open( MAIL, "< deine-mail" );
my $headers = $explode->parse( \*MAIL );
close( MAIL );

.... und habe jetzt im Hash '$headers' eine schöne, strukturierte
Beschreibung der kompletten E-Mail (headers, content-type,
content-disposition, usw.) und in der 'outdir' sind die Bestandteile der
zerlegten E-Mail in einzelnen Dateien abgelegt.

Dann baue ich eine neue E-Mail so zusammen, wie ich es gerne hätte:

my $outmail = MIME::Entity->build
( Type => 'multipart/mixed'
, From => "joe@from.tld"
, To => "bon@to.tld"
, Subject => "nice subject"
);

Jetzt habe ich schon mal den E-Mail-Header beieinander (in deinem Fall
wirst du vermutlich nicht 'multipart/mixed' wollen, dann nimmst du eben
'text/plain' oder so). Nun klebe ich noch den E-Mail-Body dran ...

$mail->attach
( Encoding => '8bit'
, Charset => 'iso-8859-15'
, Disposition => 'inline'
, Data => "$mein_body_aus_der_inmail"
);

.... wenn ich doch spezielle Attachments anhängen willst, dann ...

$mail->attach
( Path => 'meine/pdf/file'
, Encoding => 'base64'
, Disposition => 'attachment'
, Type => 'application/pdf'
);

.... usw.

Jetzt injiziere ich die zusammengabute E-Mail ins System:

open MAIL, "| sendmail [options]";
$mail->print( \*MAIL );
close MAIL;

Übrigens, an den [options] für meinen Exim hatte ich am meisten zu
knabbern ;-)

HTH
Peter