Примерно - так.
ниче особенного не делает.
скрипт получился как отрыжка другого скрипта, который должен быть декриптить
приходящие файлы.
Вроде работает.
#!/usr/bin/perl
use MIME::Tools; use MIME::Parser; use MIME::Body;
my $parser; my $DIR = "./Temp"; my $body; my $entity; my $sender; my $filename;
#---------------- Parser -------------------eval {
open LOG,">>SystemLogs/Attach.csv" or die "Can't Open LOG file";
MIME::Tools->debugging(0);
$parser = new MIME::Parser;
$parser->output_dir($DIR);
$parser->decode_headers(1);
# Set uudeode mode ON
$parser->extract_uuencode(1);
$parser->extract_nested_messages(0);
$parser->filer->purge;
if ($FILE ne "" ) {
open IN, $FILE;
binmode IN;
while (<IN>) {
chomp; if ( $_ eq "\r") {last; }
binmode STDIN;
$entity = $parser->parse(\*STDIN);
while (<STDIN>) {echo $_;}
}
$from=$entity->head->get('From');
$from =~ tr/[\n|\t]/ /;
$to = $entity->head->get('To');
$to =~ tr/[\n|\t]/ /;
# CHECK for multipart messages XXX
$size = $entity->parts;
#print "Size=".$size;
if ( $size == 0 ) { #PURE attach
if ( defined( $entity->bodyhandle->path )) { $body = $entity->bodyhandle->path; print "Body: ".$body."\n"; if ($body =~ /Temp\\(.*)$/ ) { $attach{$1} = -s $body; } unlink( $body ); }
for ( $part = 0; $part < $size; $part ++ ) {
$mybody = $entity->parts($part)->bodyhandle; if (defined( $mybody ) ) { if (defined($mybody->path)) { $filename = $mybody->path; $fsize = -s $filename; # print $fsize."\n"; # print $filename." Size: ".$fsize."\n"; } if (defined($filename)) { if ($filename =~ /Temp\\(.*)$/ ) { $attach{$1} = $fsize; } } $mybody->purge; } } $parser->filer->purge; $date = strftime "%d/%m/%y", localtime; $time = strftime "%H:%M:%S", localtime; while (($file, $size) = each %attach) { if (!($file =~ /^msg.*txt$/)) { printf( LOG "%s;%s;%s;%s;",$date,$time,$from,$to); printf( LOG "%s;%s \n",$file,$size); } delete $attach{$file}; # This is safe }
А регистрирует имена по шаблону?
Или как?
Как это вообще работает, можно по-подробнее?
С уважением
Назаркин Андрей Николаевич
ООО СК "Ренессанс Жизнь"
Начальник управления ИТ
e-mail: ANazarkin@renlife.ru , su@renlife.com
тел. (495) 981-2-981 доб. 8178
моб. тел. +7-903-204-5903
-----Original Message-----
From: CommuniGate Pro Russian Discussions [mailto:CGatePro@mx.ru]
Sent: Tuesday, July 11, 2006 2:35 PM
To: CommuniGate Pro Russian Discussions
Subject: Re: [CGP] "Эшелон" в CGP
Привет.
Я в свое время написал скрипт, который разбирает MIME и регистрирует
имена аттачей.
Возможно соорудить такую штуку с анализом названий файлов.
Только названия - не факт, что помогут. Надо содержимое смотреть.
Приветствую уважаемое сообщество!
Руководство захотело такую штуку - отслеживание определенных вложений в
ИСХОДЯЩИХ письмах.
Поясню - к примеру, хочет человек отправить коммерческое предложение -
пишет письмо, аттачит файл "Коммерческое предложение.doc".
Надо, чтобы CGP отслеживал по шаблону название (к примеру -
"Коммерческое") и слал копию письма на определенный адрес.
Что-то типа системы "Эшелон" )))
Такое вообще реально?
С уважением
Назаркин Андрей Николаевич
ООО СК "Ренессанс Жизнь"
Начальник управления ИТ
e-mail: ANazarkin@renlife.ru , su@renlife.com
тел. (495) 981-2-981 доб. 8178
моб. тел. +7-903-204-5903
##################################################################Вы получили это сообщение потому, что подписаны на список рассылки <CGatePro@mx.ru>.
Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>Для административных запросов адрес <CGatePro-request@mx.ru> Архив списка: http://mx.demos.su/lists/cgp-russian/
##################################################################Вы получили это сообщение потому, что подписаны на список рассылки <CGatePro@mx.ru>.
Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>Для административных запросов адрес <CGatePro-request@mx.ru> Архив списка: http://mx.demos.su/lists/cgp-russian/
##################################################################Вы получили это сообщение потому, что подписаны на список рассылки <CGatePro@mx.ru>.
Чтобы отписаться, отправьте сообщение на адрес <CGatePro-off@mx.ru> Чтобы переключиться в режим дайджеста - mailto:<CGatePro-digest@mx.ru> Чтобы переключиться в индексный режим - mailto:<CGatePro-index@mx.ru>Для административных запросов адрес <CGatePro-request@mx.ru> Архив списка: http://mx.demos.su/lists/cgp-russian/ Получено Tue Jul 11 10:48:09 2006
Этот архив был сгенерирован hypermail 2.1.8 : Tue 11 Jul 2006 - 15:13:31 MSD