Leser: 3
![]() |
|< 1 2 >| | ![]() |
14 Einträge, 2 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01C6BD43.CC3430CE
Content-Type: text/plain
------_=_NextPart_000_01C6BD43.CC3430CE
Content-Type: application/octet-stream;
name="test.csv"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="test.csv"
------_=_NextPart_000_01C6BD43.CC3430CE--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
if ( $gefunden == 1 )
{
$zeile =~ s/=\n//;
$zeile =~ s/=E4/ä/g;
$zeile =~ s/=FC/ü/g;
$zeile =~ s/=F6/ö/g;
$zeile =~ s/=DF/ß/g;
if ( $zeile =~ /^---/ )
{
next;
}
else
{
print OUT $zeile;
}
}
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
#!C:/Perl/bin/perl.exe -w
use MIME::QuotedPrint;
die "Usage make_CSV2.pl Filename\n" if $#ARGV != 0;
my $datafile = $ARGV[0];
my $outfile = "C:/Perl/scripts/ausgabe2.csv";
my $doEncode = 0;
open(OUT, ">>$outfile") || die "Cannnot write file $outfile!\n";
open(DATA, $datafile) || die "Cannot open file!\n";
while (<DATA>)
{
if ( /^Content-Transfer-Encoding: quoted-printable/ )
{
$doEncode = 1;
}
if ( $doEncode == 1 )
{
print decode_qp($_);
$zeile = decode_qp($_);
print OUT $zeile;
}
}
close (DATA);
close (OUT);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01C6BD43.CC3430CE
Content-Type: text/plain
------_=_NextPart_000_01C6BD43.CC3430CE
Content-Type: application/octet-stream;
name="test.csv"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="test.csv"
QuoteVielleicht kannst du mir ja nen Tipp geben wonach ich suchen könnte damit ich den Anhang mit einem MIME:: Module extrahieren kann und in eine separate Datei speichern kann.
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
#!/usr/bin/perl
use strict;
use warnings;
use MIME::Parser;
use File::Copy;
my $mimemail = 'mimemail.txt';
my $ziel = 'ziel.dat';
# Parser anlegen
my $parser = MIME::Parser->new() or die "Parserobjekt nicht anlegen: $!";
$parser->output_dir("./mimeout");
# Mail parsen, MIME::Entity zurueck erhalten
my $entity = $parser->parse_open($mimemail) or die "Kann $mimemail nicht parsen: $!";
# Gib mir alle Parts dieser Entity
my @parts = $entity->parts_DFS();
print "### Habe ", scalar @parts, " Teile gefunden. ###\n";
print "### Meldungen des Parsers:\n", $parser->results->msgs(), "### Ende der Meldungen des Parsers ###\n";
print $entity->dump_skeleton();
# Zeige alle Parts, die application/octet-stream sind :)
my $num = 0;
for my $part (@parts) {
++$num;
print "### Teil $num hat den Typ ", $part->effective_type(), "###\n";
next unless $part->effective_type() eq 'application/octet-stream';
print "### Header von Teil $num ###\n", $part->head()->as_string, "### Ende Header Teil $num ###\n";
# bodyhandle() liefert uns ein MIME::Body Objekt mit dem Inhalt des Parts
my $bh = $part->bodyhandle();
unless ($bh) {
print "### Teil $num hat keinen Body ###\n";
}
# Hier wird der dekodierte Teil ausgegeben. Geht natuerlich auch in eine Datei.
print "### Dekodierter Inhalt Teil $num ###\n", $bh->as_string, "### Ende Teil $num ###\n";
# Wo liegt die Datei?
print "### Pfad zu Body $num: ", $bh->path(), " ###\n";
# Datei kopieren (wenn es mehrere Teile mit application/octet-stream gibt, bleibt nur die letzte uebrig!)
print "### Kopiere ", $bh->path(), " nach $ziel ###\n";
copy ($bh->path(), $ziel) or warn $!;
}
# Alle temporaeren Dateien loeschen
$parser->filer->purge();
QuotePS: Wieso kann das zerlegen einer Mail nicht ebenso einfach sein, wie das Versenden einer Mail mit Anhang??? :rock:
![]() |
|< 1 2 >| | ![]() |
14 Einträge, 2 Seiten |