LINUX.ORG.RU

История изменений

Исправление vtVitus, (текущая версия) :

если ты парсаешь mbox, то лучше взять perl ибо тут 20 строк на всю программу. все модуля есть в дебиан.

#!/usr/bin/perl -w
use strict;
use Mail::Mbox::MessageParser;
use Email::Simple;

Mail::Mbox::MessageParser::SETUP_CACHE({ 'file_name' => '/tmp/cache' } );

my $mbox="/var/mail/vitus";
my $mboxHandle = new FileHandle($mbox);

my $folderReader =
  new Mail::Mbox::MessageParser( {
    'file_name' => $mbox,
    'file_handle' => $mboxHandle,
    'enable_cache' => 1,
    'enable_grep' => 1,
  } );

die $folderReader unless ref $folderReader;

my $count = 0;

while(!$folderReader->end_of_file()) {
  my $email = $folderReader->read_next_email();
  my $from = new Email::Simple($$email)->header('FROM');
  print $from, "\n";
  $count = $count + 1;
}

print "Email count: $count\n";

Исходная версия vtVitus, :

если ты парсаешь mbox, то лучше взять perl ибо тут 20 строк на всю программу. все модуля есть в дебиан.

#!/usr/bin/perl -w
use strict;
use Mail::Mbox::MessageParser;
use Email::Simple;

Mail::Mbox::MessageParser::SETUP_CACHE({ 'file_name' => '/tmp/cache' } );

my $mbox="/var/mail/vitus";
my $mboxHandle = new FileHandle($mbox);

my $folder_reader =
  new Mail::Mbox::MessageParser( {
    'file_name' => $mbox,
    'file_handle' => $mboxHandle,
    'enable_cache' => 1,
    'enable_grep' => 1,
  } );

die $folder_reader unless ref $folder_reader;

my $count = 0;

while(!$folder_reader->end_of_file()) {
  my $email = $folder_reader->read_next_email();
  my $from = new Email::Simple($$email)->header('FROM');
  print $from, "\n";
  $count = $count + 1;
}

print "Email count: $count\n";