How can I stop Perl Mail :: Box :: Manager from deleting directories?

I use the Perl Mail :: Box :: Manager module to read messages from Maildir and move them to another directory. After the script finishes processing mail messages in Maildir, it will also delete the cur / and new / Maildir directories, and the Maildir files / directories must be recreated.

I do not want the script to delete folders and had to recreate the Maildir structure.

I have something simple:

#!/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();

Any suggestions received are very strong. Thank.

+3
source share
1 answer

Add

remove_when_empty => 0,

to call $mgr->open.

+5
source

Source: https://habr.com/ru/post/1766022/


All Articles