Liviu Daia <[EMAIL PROTECTED]> scria la data de 24 Octombrie 2005:
> Octavian Rasnita <[EMAIL PROTECTED]> scria la data de 24 Octombrie 2005:
> > Email::MIME::Attachment::Stripper - Strip the attachments from a mail
> >
> > my $stripper = Email::MIME::Attachment::Stripper->new($mail);
> > my Email::MIME $msg = $stripper->message;
> > my @attachments = $stripper->attachments;
> >
> > Trebuie instalat Email::MIME::Attachment::Stripper de pe CPAN.
>
> Si asta face "extragere automata a attachurilor dintr-un mail"?
>
> In sfarsit, daca vrei sa ne taiem in perlane --- dar nu cred ca e
> mai simplu...
Scuze, am uitat ca RLUG taie attachment-urile care nu sunt text...
Salutari,
Liviu Daia
--
Dr. Liviu Daia http://www.imar.ro/~daia
#! /usr/bin/perl -w
#
# $Revision$
# $Id$
# $Source$
#
use MIME::Parser;
use strict;
use Carp ();
local $SIG{__WARN__} = \&Carp::cluck;
use constant BUFSIZ => 8192;
my ($p, $f, $e, $b, $buf);
sub attach ($);
sub
attach ($)
{
my ($e) = @_;
if ($e->is_multipart)
{
# recurse
for ($e->parts) { attach ($_) }
}
else
{
$f = '<unknown>';
$f = $e->head->mime_attr ('content-type.name')
if (defined $e->head->mime_attr ('content-type.name'));
$f = $e->head->mime_attr ('content-disposition.filename')
if (defined $e->head->mime_attr ('content-disposition.filename'));
# print "attachment: $f\n";
if ($f =~ m/\.t?gz$/io)
{
# sanitize
$f =~ s/[EMAIL PROTECTED]:,.-]/_/go;
open F, "> $f"
or die qq{can't open: $!};
# $b = IO::Wrap
$b = $e->bodyhandle->open ('r')
or die qq{can't open body: $!};
while ($b->read ($buf, BUFSIZ))
{
print F $buf;
}
$b->close
or die qq{can't close body: $!};
close F
or die qq{can't close: $!};
}
}
}
$p = MIME::Parser->new ();
$p->extract_encoded_messages (1);
$p->extract_nested_messages ('REPLACE');
$p->extract_uuencode (1);
$p->ignore_errors (1);
$p->output_to_core (0);
$p->tmp_recycling (1);
$p->tmp_to_core (0);
$p->use_inner_files (0);
$f = MIME::Parser::FlatFiler->new (defined $ENV{'TMP'} ? $ENV{'TMP'} : '/tmp');
$f->ignore_filename (1);
$p->filer ($f);
$e = eval { $p->parse (\*STDIN) };
die [EMAIL PROTECTED] if ($@ or ! defined $e);
# my $r = $p->results;
eval { attach ($e); };
die [EMAIL PROTECTED] if ($@);
$p->filer->purge;
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug