#!/usr/bin/perl ####################################### # File: kmail2eudora.cgi # By: Tim Coston # Date: 02 May 01 # Last Modified: 02 May 01 tlc # # # Coston Enterprises, Inc. # www.coston.net ######################################## $scriptname = "kmail2eudora.cgi"; $ver = "1.00"; ######################################## ########################################### # Change the below variables to suite your system ########################################### # Absolute Path to Eudora Directory $eudora_dir = "/home/tcoston/Eudora"; # Absolute Path to kMail Directory $kmail_dir = "/home/tcoston/Mail_test"; # Absolute Path to this CGI Directory $cgi_dir = "/home/tcoston/CEIPerl/CEIEvolution"; opendir(EVO, "$eudora_dir"); @eu_files = readdir(EVO); closedir(EVO); $eu_count = 0; foreach (@eu_files) { next if($_ eq "."||$_ eq ".."); $eu_count++; } #foreach opendir(KMA, "$kmail_dir"); @km_files = readdir(KMA); closedir(KMA); $km_count = 0; foreach (@km_files) { next if($_ eq "."||$_ eq ".."); $km_count++; } #foreach print qq~ CEIEvolution! kmail2eudora - Mail Conversion Path Data: Eudora Dir: $eudora_dir File Count: $eu_count kMail Dir: $kmail_dir File Count: $km_count CEIEvolution Dir: $cgi_dir Conversion in Progress....... ~; foreach $one (@eu_files) { next if($one eq "." || $one eq ".." || $one eq "descmap.pce" || $one =~ m#\.toc$#); if(-f "$eudora_dir/$one") { $type = "mail file"; } elsif (-d "$eudora_dir/$one") { $type = "directory"; } else { $type = "unknown"; } print "$one -$type\n"; unless($one =~ m#^\.#) { if(-f "$eudora_dir/$one") { next unless($one =~ m#\.mbx$#); $newone = $one; $newone =~ s#\.mbx$##; if($newone eq "In") { $newone = "inbox"; } if($newone eq "Trash") { $newone = "trash"; } if($newone eq "Out") { $newone = "sent-mail"; } $new_file = "/$newone"; print " -New MBOX: $new_file\n"; open(ONE, "$eudora_dir/$one"); @orig_mbx = ; close(ONE); open(ONE2, ">>$kmail_dir/$newone"); print ONE2 @orig_mbx; close(ONE2); $mbx_files++; } #if } #unless if(-d "$eudora_dir/$one") { opendir(SUB, "$eudora_dir/$one"); @sub_fil = readdir(SUB); closedir(SUB); foreach $two(@sub_fil) { next if($two eq "." || $two eq ".." || $two eq "descmap.pce" || $two =~ m#\.toc# ); if(-f "$eudora_dir/$one/$two") { next unless($two =~ m#\.mbx$#); $newone = "$one"; $newone =~ s#\.fol$##; $newone = "." . "$newone" . ".directory"; print " - new file: /$newone/$two\n"; open(TWO, "$eudora_dir/$one/$two"); @orig_mbx = ; close(TWO); unless(-d "$kmail_dir/$newone") { mkdir("$kmail_dir/$newone",0777); chmod(0777, "$kmail_dir/$newone"); } open(TWO2, ">>$kmail_dir/$newone/$two"); print TWO2 @orig_mbx; close(TWO2); $mbx_files++; } #if } #foreach } #if } #foreach print qq~ $mbx_files files converted ---------------------- Comversion Complete FREE TO DISTRIBUTE UNMODIFIED Coston Enteprises, Inc. www.coston.net ~; exit; ######################### # Header ######################### sub ph { unless($printed == 1) { print "Content-type:text/html\n\n"; print ""; $printed = 1; } } #sub ph ######################## # Utilities - Modify Map ######################## sub add_map { $my_dir = shift; $my_line = shift; ($my_name,$my_bname,$my_A,$my_B) = split(/\,/,$my_line,4); open(MAP,"$my_dir/descmap.pce"); @orig_map = ; close(MAP); $exists = 0; foreach $line (@orig_map) { chomp($line); ($name,$bname,$A,$B) = split(/\,/,$line,4); next if($name eq ""); if($name eq $my_name && $bname eq $my_bname) { $exists = 1; } } #foreach if($exists == 0) { open(MPP, ">>$my_dir/descmap.pce"); print MPP "$my_line\n"; close(MPP); } #if return; } #sub add_map