Bonjour à tous,
j'utilise Evolution pour lire mes emails stockés sur un serveur IMAP. J'ai activé la copie des emails en local.
Par une fausse manip (j'ai voulu jouer avec offlineImap), j'ai supprimé tous mes emails du serveur.
La seule sauvegarde que j'ai est la copie en local des emails. Comment puis-je re-importer tous ces emails ?
En cherchant sur Internet, j'ai vu sur une mailling-list que la solution se trouve ici :
http://codeblogs.ximian.com/blogs/evolution/archives/000146.(...)
Pas de chance, le serveur est injoignable.
Merci de votre aide.
Forum général.cherche-logiciel Récuperer des emails de Evolution
6
nov.
2005
# Vive les archives
Posté par ondex . Évalué à 1.
#!/usr/bin/perl # convert an evolution imap cache into a folder # Note: This version loses any status info stored in the .ev-summary file. $dir = $ARGV[0]; $out = $ARGV[1]; if ($dir eq "" || $out eq "") { print "Usage $0 inputdir outmboxfile\n"; exit; } print "Processing dir $dir into mbox $out\n"; open OUT,">>$out"; foreach $file (`ls $dir | sort -n`) { chop $file; push @files, $file; $files{$file} = $file; } foreach $file (@files) { if ($file eq "." || $file eq "..") { next; } print " $file\n"; if ($file =~ m/^\d+\.$/) { open IN,"<$dir/$file"; @body = ; close IN; print OUT "From -\n"; print OUT @body; print OUT "\n"; } elsif ($file =~ m/^(\d*)\.HEAD/) { $base = $1; &add_body($base); } else { print "skipping\n"; } } sub add_body { my $base = $_[0]; my $boundary; my @head, $head; my $n; my $name; my @pending, $pending; print "Adding body $base\n"; if ($files{$base.".MIME"}) { open IN,"<$base.MIME"; @head = ; close IN; print OUT @head; } if ($files{$base.".HEADER"}) { $name = "$dir/$base.HEADER"; } elsif ($files{$base}) { open IN, "<$base"; @head = ; close IN; print OUT @head; print OUT "\n"; return; } else { print OUT "\nBody of message not found\n"; return; } open IN,"<$name"; @head = ; close IN; $head = join("",@head); if ($head =~ m/boundary\s*=\s*\"([^\"]*)\"/is) { $boundary = $1; } elsif ($head =~ m/boundary\s*=\s*([\S]*)/si) { $boundary = $1; } else { $boundary = ""; } print "outputting head data $name\n"; print OUT $head; # this is so we 'properly' insert missing parts. @pending = (); $n = 1; while ($n < 50) { $name = $base.".".$n.".MIME"; if ($files{"$base.$n.MIME"} || $files{"$base.$n.HEADER"} || $files{"$base.$n"}) { push @pending, "$base.$n"; foreach $pending (@pending) { if ($boundary ne "") { print OUT "--$boundary\n"; } add_body($pending); } @pending = (); } $n++; } if ($boundary ne "") { print OUT "--$boundary--\n\n"; } }Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.