folderxfer
folderxfer is very similar to inboxfer except that, instead of a list of usernames, it takes the output of bsd2cyrus as input and copies messages from Berkeley-format mail folders into the corresponding Cyrus mailboxes. The folderxfer script is shown in Example A-5 .
Example A-5. folderxfer
#!/usr/local/bin/perl ## Purpose: Converts contents of Berkeley-format mail folders ## to Cyrus mailboxes ## ## Assumptions: (1) The root mailbox and empty Cyrus folder must ## exist before conversion takes place. ## ## (2) Input has been checked for illegal characters ## and files that do not contain mail content. ## ## Input: A list containing the following information on each ## line: ## ## <username>:<cyrus-format folder name>:<BSD folder path> $scripts = "/home/cyrus/bin"; # Location of this script $mailstore = "/var/spool/imap/user"; # Cyrus mailstore $cmd = "/usr/local/bin/formail -n 20 -s $scripts/cpmsg"; $folders = "$ARGV[0]"; if (!$folders) { die "Usage: $0 filename"; } open (MB,"$folders") || die "can't open $folders"; while (<MB>) { chop; ## Be careful with this split - the last token might have ## whitespace we want to preserve. ($user,$cyrusfolder,$folder) = split(/:/,$_,3); @fields = split(/\\./,$cyrusfolder); $cyrfol = $fields[$#fields]; $cat = "/usr/bin/cat \\"$folder\\""; system ("$cat | $cmd '$mailstore/$user/$cyrfol'"); } close MB;
Get Managing IMAP now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.