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();
どんな提案でも大歓迎です。ありがとう。