Portál AbcLinuxu, 1. června 2025 02:56
#!/usr/bin/python import sys, email for part in email.message_from_file(sys.stdin).walk(): ctype = part.get_content_type() filename = part.get_filename() payload = part.get_payload(decode=True) if payload: print "%s: `%s', %u bytes" % (ctype, filename, len(payload)) # file('/bla/bla', 'w').write(payload)
#!/usr/bin/perl -w
# Ulozi prilohu z mailu do adresare a zapise log
#
#
use strict;
use MIME::Parser;
my $attachdir;
($attachdir)=@ARGV;
my $logfile='~/log/attaches.log';
my $parser=new MIME::Parser;
$parser->ignore_errors(1);
$parser->extract_uuencode(1);
$parser->tmp_recycling(0);
$parser->output_to_core(1);
my $entity=$parser->parse(\*STDIN);
my $from=$entity->head->get('From');
my $subject=$entity->head->get('Subject');
my @parts=$entity->parts;
my $aname='attachment001';
while(my $part = shift(@parts)) {
if($part->parts) {
push @parts,$part->parts; # Nested multi-part
next;
}
my $type=$part->head->mime_type || $part->head->effective_type;
if($type !~ /^(text|message)/i) { # Not a text, save it
my $filename=$part->head->recommended_filename || $aname;
$aname++;
my $io=$part->open("r");
open(F,"> $attachdir/$filename");
my $buf;
while($io->read($buf,1024)) {
print F $buf;
}
close(F);
$io->close;
open(LOG,">> $logfile");
print LOG localtime()." From: $from\t Subject: $subject\t";
print LOG "File: filename\n";
close(LOG);
}
}
#========== EOF =======================
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.