|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#!/usr/bin/perl
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# Usage: folderxfer inputfile
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# Purpose: Converts contents of Berkeley-format mail folders
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# to Cyrus mailboxes
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# Input: Output of 'bsd2cyrus'
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# (username:Cyrus-folder-name:Berkeley-folder-path)
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# Warnings: The root mailbox and empty Cyrus folder must
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# exist before conversion takes place, and source folders
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# should be checked for RFC 822 content before being processed
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#$Id: folderxfer,v 1.1 2004/02/04 12:59:42 karsten Exp $
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$pwd = "/usr/lib/cyrus-imapd";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$mailstore = "/var/spool/imap"; # Cyrus mailstore
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$cat = "/bin/cat";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$cmd = "/usr/bin/formail -n 20 -s $pwd/cpmsg";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$folders = "$ARGV[0]";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
if (!$folders) { die "Usage: $0 filename"; }
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
open (MB,"$folders") || die "can't open $folders";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
while (<MB>) {
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
chop;
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# Be careful with this split - the last token might have
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
# whitespace we want to preserve
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
($user,$cyrusfolder,$folder) = split(/:/,$_,3);
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
@fields = split(/\./,$cyrusfolder);
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$cyrfol = $fields[$#fields];
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$fcat = "$cat \"$folder\"";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
print $fcat;
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
$prefix = substr($user,0,1);
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
system ("$fcat | $cmd '$mailstore/$prefix/user/$user/$cyrfol'");
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
#print "'$mailstore/$prefix/user/$user/$cyrfol";
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
}
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
close MB;
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|
|
![](https://seccdn.libravatar.org/avatar/2a8383942cc48ebef36e44dd7300ead1d3d45bec27eae3b6391e681bf8b3502a?s=16&d=retro) |
38f2261 |
|