5 Einträge, 1 Seite |
1
2
3
4
5
6
7
Content-Type: image/jpeg;
name="testbild.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="testbild.jpg"
4AAQSkZJRgABAgEASABIAAD/7RakUGhvdG9zaG9wIDMuMA
[+ weitere Zeilen des obigen Zahlensalates]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
#!/usr/bin/perl use strict; use MIME::Parser; die "Usage makeCSV Filename\n" if $#ARGV != 0; my $infile = $ARGV[0]; my $top_entity; my $pfad = "/csv"; my $prefix = "Message"; my $filename; # Datei mit MIME-Nachricht einlesen und parsen $top_entity = &parse_MIME_Stream($infile); # MIME-Nachricht rekursiv durchlaufen &walk($top_entity); exit; sub parse_MIME_Stream { my $file = shift; my $parser = ''; die "NO FILE $!" unless defined $file; $parser = MIME::Parser->new(); $parser->output_to_core('NONE'); $parser->output_dir($pfad); $parser->output_prefix($prefix); open(INPUT,$file) or die $!; my $top_entity = $parser->read(\*INPUT); close(INPUT) or die $!; return $top_entity; } sub walk #(Entity) { my $entity = shift if @_; return unless defined $entity; my $head = $entity->head(); if ($head->mime_type() =~ m/multipart/i) { # mehrteilige Nachricht my $i; my $num_alt_parts = $entity->parts(); my $current_entity; # alle Teile der Nachricht rekursiv abarbeiten for ($i = 0; $i < $num_alt_parts; $i++) { $current_entity = $entity->parts($i); &walk($current_entity); } } else { # einteilige Nachricht &handle_head($head) if (defined $head); } } sub handle_head #(Header) { my $current_head = shift; $current_head->decode; $current_head->unfold; if ( $current_head->recommended_filename() =~ m/\.csv/i ) { print $current_head->recommended_filename()."\n"; } }
use warnings;
5 Einträge, 1 Seite |