Как я могу запретить Perl's Mail::Box::Manager удалять каталоги?

Я использую модуль Perl Mail::Box::Manager читать сообщения из Maildir и перемещать их в другой каталог. После того, как сценарий завершит обработку почтовых сообщений в Maildir, он также удалит каталоги cur/ и new/Maildir, а файлы/каталоги Maildir необходимо будет создать заново.

Я не хочу, чтобы скрипт удалял папки и заново создавал структуру Maildir.

У меня есть что-то простое, например:

#!/usr/bin/perl
use Mail::Box::Manager;

my $cnt = 0;
my $mgr = Mail::Box::Manager->new;
my $folder = $mgr->open( folder => '/home/vmail/mailfolder/',
                     access => 'rw',
                     type => 'maildir',
                     log => 'DEBUG',
                    );

foreach my $msg ( $folder->messages ) {
    # ... doing some processing of $msg here, then, move the mail for storage

    my $filename = $msg->filename || "NA";
    $filename =~ m#(.*)/new/(.*)$#;

    $mgr->moveMessage("/dir/$filename", 
                      $folder->message($cnt), 
                      create => 1 );
    $cnt++;
}

$folder->close();

Любые предложения очень приняты. Спасибо.


person Imo    schedule 22.09.2010    source источник


Ответы (1)


Добавлять

remove_when_empty => 0,

на вызов $mgr->open.

person cjm    schedule 22.09.2010
comment
Я что-то упустил или это недокументировано? Я не видел этого в параметрах open(). - person brian d foy; 23.09.2010
comment
@brian d foy, документы для open говорят Описание параметров папки см. в параметрах конструктора Mail::Box::new() для каждого типа почтового ящика. remove_when_empty там описано. - person cjm; 23.09.2010