A script for fixing bare newlines in mailbox files?
    Joseph Brennan 
    brennan at columbia.edu
       
    Fri Jan 12 08:45:37 EST 2007
    
    
  
--On Thursday, January 11, 2007 17:35 -0500 Zachariah Mully 
<zmully at smartbrief.com> wrote:
> Howdy all-
> 	We've been bitten by migrating some of our people from Outlook to
> Thunderbird, and then using Tbird to move their mail off their local
> machines onto the IMAP server where it belongs. Unfortunately we've not
> patched Cyrus to accept bare newlines, nor intend to... Since I have
> access to the local mailboxes does anybody have a perl script or
> something of the like that would remove the bare newlines from the raw
> mailbox files? My perl-fu sucks this days, and I've not been able to
> figure where and how to remove them...
When moving from U Wash to Cyrus we applied this rewrite to all
mailboxes.  Get rid of any nulls while you're at it.
while(<>) {
    # The \000 character (NUL) is not allowed
    if ($line =~ s/\000//g) {
       print STDERR "WARNING: Removing NUL\n";
    }
    # Change CRLF or bare CR to LF
    $endcr = $midcr = 0;
    $endcr++ if ($line =~ s/\015$//g); # \n already there
    $midcr++ if ($line =~ s/\015/\n/g); # add \n
    if ($endcr || $midcr) {
       print STDERR "WARNING: Correcting CR characters\n";
     }
    print;
}
Joseph Brennan
Lead Email Systems Engineer
Columbia University Information Technology
    
    
More information about the Info-cyrus
mailing list