Примерно - так.
ниче особенного не делает.
скрипт получился как отрыжка другого скрипта, который должен быть декриптить
приходящие файлы.
Вроде работает.
#!/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