Strumenti Utente

Strumenti Sito


documentazione_3di_riservata:manuali_sysadmin:mail

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
documentazione_3di_riservata:manuali_sysadmin:mail [2015/12/31 13:20] – [Conversione maildir posftfix in file mbox] aalberghinidocumentazione_3di_riservata:manuali_sysadmin:mail [Data sconosciuta] (versione attuale) – eliminata - modifica esterna (Data sconosciuta) 127.0.0.1
Linea 1: Linea 1:
-====== Gestione servizi di posta ====== 
- 
-===== Mail interna ===== 
- 
-===== Mail esterna ===== 
- 
- 
-====== Procedure automatizzate ====== 
- 
-===== Conversione maildir posftfix in file mbox ===== 
- 
-Dalla [[http://wiki.dovecot.org/Migration/MailFormat#Converting_from_Maildir_to_mbox | wiki di Dovecot]] si è estratto e riadattato uno script perl per convertire in mbox anche le maildir prodotte da postfix mediante il programma formail (già presente nella suite di postfix). 
- 
-Si riporta il codice utilizzato per la conversione. Lo script necessita del pacchetto **Path::Iterator::Rule** (presente anche su [[http://www.cpan.org/ | CPAN]]) per funzionare. Nel caso la propria distro non lo preveda tra i suoi pacchetti, è possibile installarlo mediante il comando: 
- 
-  cpan -i Path::Iterator::Rule 
- 
-<code perl maildir2mbox.pl> 
-#!/usr/bin/perl 
- 
-use Path::Iterator::Rule; 
-use Cwd; 
-use File::Basename; 
-use File::Spec; 
- 
-use warnings; 
- 
-sub recurse_maildir { 
-  my $rule = Path::Iterator::Rule->new; 
- 
-  $rule->directory; 
-  $rule->skip_subdirs ("cur","new","tmp"); 
- 
-  foreach my $dir ( $rule->all($_[0])) { 
-    next unless stat("$dir/cur") || stat("$dir/new"); 
-    print "Going into ",  $dir, "\n"; 
-    my $pwd = getcwd; 
-    chdir ($dir); 
-    if ($dir eq $parentDir ) { 
-      $dir = "INBOX"; 
-                                                                                                                                                                                                    
-    my $cleanDir = basename($dir);                                                                                                                                                                     
-    if ($cleanDir =~ m/^\.(.*)/ ) {                                                                                                                                                                    
-       $cleanDir = $1;                                                                                                                                                                                 
-    }                                                                                                                                                                                                  
-    my $finalOutputFile = File::Spec->catfile (dirname ($outputfile),$cleanDir . "_" .  basename ($outputfile));                                                                                       
-    print "Saving all mails to $finalOutputFile)\n"; 
-    my @files = (<cur/*>,<new/*>); 
-    foreach my $file (@files) { 
-       next unless -f $file; # skip non-regular files 
-       next unless -s $file; # skip empty files 
-       next unless -r $file; # skip unreadable files 
-       $file =~ s/'/'"'"'/;  # escape ' (single quote) 
-       my $run = "cat '$file' | $cmd >>'$finalOutputFile'"; 
-       system($run) == 0 or warn "cannot run \"$run\"."; 
-    } 
-    chdir ($pwd); 
-  } 
- 
-} 
- 
-# dw-maildirtombox.pl 
-# dw = Dovecot Wiki :-) 
-# NOTE! The output file must not contain single quotes (')! 
-# figure out which program to run 
-$cmd="reformail -f1"; 
-system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 or $cmd="formail"; 
-system("$cmd </dev/null >/dev/null 2>/dev/null") == 0 
-or die "cannot find reformail or formail on your \$PATH!\nAborting"; 
-$parentDir=$ARGV[0]; 
-$outputfile=$ARGV[1]; 
-if (($outputfile eq '') || ($parentDir eq '')) 
-{ die "Usage: ./archivemail.pl mailbox outputfile\nAborting"; } 
- 
-recurse_maildir ($parentDir); 
- 
-</code> 
- 
- 
- 
- 
  
/data/attic/documentazione_3di_riservata/manuali_sysadmin/mail.1451564412.txt.gz · Ultima modifica: 2017/09/08 10:59 (modifica esterna)