3

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();

どんな提案でも大歓迎です。ありがとう。

4

1 に答える 1

5

追加

remove_when_empty => 0,

$mgr->open呼び出しに。

于 2010-09-22T16:13:44.617 に答える