Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
am 16.01.2007 17:30:06 von Oliver Meister
Guten Tag miteinander
Wie ihr vielleicht schon aus einem vorangegangenem Posting vermutet,
versuche ich die Attachments von E-Mails zu extrahieren.
Ich habe die gesamte E-Mail im String "$body".
Per regExp hole ich mir verschiedene Informationen daraus.
Nun bin ich daran, die Attachments zu extrahieren.
Ich lese also mit diesem RegExp my @files =3D $body =3D~
/([a-zA-Z0-9_-]{30,})/g;
-> das liest alle Linien deren Zeichen länger als 30 Zeichen sind (in
der Annahme, das dies der Base 64 Code für die Attachments ist).
Bei den Linien, die weniger als 76 Zeichen haben, fülle ich den Rest
mit "=3D" - Zeichen auf.
Das funktioniert zwar schon... aaaaaber... alles in allem bin ich,
glaube ich, auf dem Holzweg...
Zu meinen Fragen:
- Wie macht ihr das? Wie lest ihr die Attachments aus den Mails mit
Perl?
- Gäbe es einen schlaueren RegExp als den, den ich verwende um den
Base64 Code zu holen?
- Wie füllt ihr die leeren Zeichen, wenn die Zeile nicht durch 4
Teilbar ist?
Grüsse
Oliver
Re: Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
am 16.01.2007 19:47:40 von Achim Grolms
Oliver Meister wrote:
[..Base64..]
> Zu meinen Fragen:
> - Wie macht ihr das?
MIME::Base64
Re: Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
am 16.01.2007 20:33:53 von hjp-usenet2
On 2007-01-16 16:30, Oliver Meister wrote:
> Guten Tag miteinander
>
> Wie ihr vielleicht schon aus einem vorangegangenem Posting vermutet,
> versuche ich die Attachments von E-Mails zu extrahieren.
>
> Ich habe die gesamte E-Mail im String "$body".
> Per regExp hole ich mir verschiedene Informationen daraus.
>
> Nun bin ich daran, die Attachments zu extrahieren.
[...]
> Zu meinen Fragen:
> - Wie macht ihr das? Wie lest ihr die Attachments aus den Mails mit
> Perl?
MIME::Parser.
> - Gäbe es einen schlaueren RegExp als den, den ich verwende um den
> Base64 Code zu holen?
> - Wie füllt ihr die leeren Zeichen, wenn die Zeile nicht durch 4
> Teilbar ist?
Wenn Du nicht einen sehr guten Grund hast, erfinde dieses Rad nicht neu:
MIME schaut zwar auf den ersten Blick recht einfach aus (die
Beschreibung hat eh nur knapp über 100 Seiten), enthält aber etliche
Fallstricke.
hp
--
_ | Peter J. Holzer | > Wieso sollte man etwas erfinden was nicht
|_|_) | Sysadmin WSR | > ist?
| | | hjp@hjp.at | Was sonst wäre der Sinn des Erfindens?
__/ | http://www.hjp.at/ | -- P. Einstein u. V. Gringmuth in desd
Re: Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
am 17.01.2007 10:56:04 von Oliver Meister
Peter J. Holzer schrieb:
...
> >
> > Nun bin ich daran, die Attachments zu extrahieren.
> [...]
> > Zu meinen Fragen:
> > - Wie macht ihr das? Wie lest ihr die Attachments aus den Mails mit
> > Perl?
>
> MIME::Parser.
>
> > - Gäbe es einen schlaueren RegExp als den, den ich verwende um den
> > Base64 Code zu holen?
> > - Wie füllt ihr die leeren Zeichen, wenn die Zeile nicht durch 4
> > Teilbar ist?
>
> Wenn Du nicht einen sehr guten Grund hast, erfinde dieses Rad nicht neu:
> MIME schaut zwar auf den ersten Blick recht einfach aus (die
> Beschreibung hat eh nur knapp über 100 Seiten), enthält aber etliche
> Fallstricke.
Wenn man weiss, dass das Rad schon existiert, dann erfindet man es
nicht noch ein Mal;
Es kam mir halt schon der Verdacht, als ich so am Programmieren war,
dass da schon ein Rad vorhanden sein müsste... :-)
Ich bin halt nicht sehr bewandert in Perl - ich programmiere dafür in
anderen Sprachen auch schlecht. :-)
>
> hp
...
Inzwischen habe ich mir MIME::Parse und EMAIL::Store angeguckt. Ich
werde mich wohl mit eine Lösung in MIME::Parse.
Mit der Suche nach MIME::Parse habe ich auch gute Beispiele für mein
Vorhaben gefunden - das sollte den Arbeitsaufwand auch noch ein
bisschen reduzieren.
... und irgend wann finde ich auch noch raus, wie man die per "PPM
install" installieren tut (bzw warum einige Module gehen und andere
nicht)...
Vielen Dank für die Infos.
Oliver
Re: Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
am 17.01.2007 13:22:45 von Reinhard Pagitsch
Hallo Oliver,
Oliver Meister wrote:
> Guten Tag miteinander
>
> Wie ihr vielleicht schon aus einem vorangegangenem Posting vermutet,
> versuche ich die Attachments von E-Mails zu extrahieren.
[snip]
>
> Zu meinen Fragen:
> - Wie macht ihr das? Wie lest ihr die Attachments aus den Mails mit
Kommt wie Du die Mails vorliegen hast, File, Memory, welches Format die
Mails haben. Es gibtbereits fertige Mail-Parser. Um z.B. Dateien die im
MBox Format vorliegen zu parsen gibt es das Modul Mail::MboxParser. Mit
dem kann man auch die Attacments extrahieren.
Grüße,
Reinhard
--
PM Mails an rpirpag gmx dot at
Re: Base64 Zeichen aus Body? oder Attachment Verarbeitung aus MailBody...
am 31.01.2007 17:20:48 von Peter Velan
am 2007-01-16 17:30 schrieb Oliver Meister:
> Zu meinen Fragen:
> - Wie macht ihr das? Wie lest ihr die Attachments aus den Mails mit
> Perl?
> - Gäbe es einen schlaueren RegExp als den, den ich verwende um den
> Base64 Code zu holen?
use MIME::Explode;
# ---- create new email explode object
my $explode =
MIME::Explode->new
( output_dir => /ziel/dir
, mkdir => 0755
, check_content_type => 1
);
# ----- explode file.eml
open( MAIL, "< file.eml" )
my $headers = $explode->parse( \*MAIL );
close( MAIL );
In /ziel/dir sind alle Bestandteile con file.eml brav zerpflückt und in
$headers sind alle Header wunderbar aufgedröselt.
Gruß,
Peter