Hi, Courier to dovecot migration script https://dovecot.org/tools/courier-dovecot-migrate.pl referenced at the https://wiki.dovecot.org/Migration/Courier page has a couple of problems. One of them is that the script could not process courierpop3dsizelist generated by courier-5. File format has been changed a bit to mark UTF-8 messages with an additional attribute. Is it safe to ignore such flag or its value should be stored somewhere for dovecot? Internally courier assumes false value during migration from the previous format version (v2 to v3). --- courier-dovecot-migrate.pl.orig 2012-07-28 17:14:20.000000000 +0000 +++ courier-dovecot-migrate.pl 2020-05-08 09:54:53.249214022 +0000 @@ -170,8 +170,9 @@ my $pop3_fname = "$dir/$courier_pop3_uidfile"; open( $f, $pop3_fname ) || die $!; my $pop3_hdr = <$f>; - if ( $pop3_hdr =~ /^\/2 (\d+) (\d+)$/ ) { + if ( $pop3_hdr =~ /^\/[23] (\d+) (\d+)$/ ) { # /2 <next uid> <uidvalidity> + # /3 <next uid> <uidvalidity> $_ = <$f>; } elsif ( $pop3_hdr =~ /^\/1 (\d+)$/ ) { @@ -193,9 +194,13 @@ chomp $_; $line++; - my ( $full_fname, $fsize, $uid, $uidv ); + my ( $full_fname, $fsize, $uid, $uidv, $_is_utf8 ); - if ( /^([^ ]+) (\d+) (\d+):(\d+)$/ ) { + if ( /^([^ ]+) (\d+) (\d+):(\d+):(\d+)$/ ) { + # v3 + ( $full_fname, $fsize, $uid, $uidv, $_is_utf8 ) = ( $1, $2, $3, $4, $5 ); + } + elsif ( /^([^ ]+) (\d+) (\d+):(\d+)$/ ) { # v2 ( $full_fname, $fsize, $uid, $uidv ) = ( $1, $2, $3, $4 ); }