[linux-l] E-Mail Speicherformate konvertieren (gelöst)

Axel Weiss axel at freesp.de
Di Mär 4 12:41:37 CET 2008


Anselm Hinderling <lili at absinth.net> wrote:
> Selbst Evolution sollte mit Maildir zurechtkommen. Ohne Import. 
> Konvertieren tut man gemeinhin in die andere Richtung. Sonst würde 
> vielleicht eine formail-Lösung funktionieren, wie hier beschrieben:
> http://does-not-exist.org/mail-archives/mutt-users/msg05262.html

Danke Anselm,

das war der Bringer! Eine Fingerübung war noch nötig, um alle
Mail-Ordner aufzuspüren, jetzt habe ich alle Mails im mbox-Format.

Für Interessierte, das Skript, das meine Mail-Struktur gepackt hat:

#-------------------------8<----------------------------------
#!/bin/bash
maildir=<path-to-archive>/Mail
mbox=<path-to-archive>/mbox
dirs="<directories containing mails>"
container="<directories containing directories containing mails>"

cd $maildir
for d in $dirs; do
    echo generate mbox-file $mbox-$d
    : > $mbox-$d
    test -n "`ls $maildir/$d/new`" && {
        for file in $maildir/$d/new/*; do
            formail -I Status: <"$file" >>$mbox-$d
        done
    } || true
    for file in $maildir/$d/cur/*; do
        formail -a "Status: RO" <"$file" >>$mbox-$d
    done
done
for c in $container; do
    sub=`ls -F .$c.directory | grep \/ | sed -e "s/\///g"`
    plain=`ls -F .$c.directory | grep \* | sed -e "s/\*//g"`
    for d in $sub; do
        echo generate mbox-file $mbox-$c-$d
        : > $mbox-$c-$d
        test -n "`ls $maildir/.$c.directory/$d/new`" && {
            for file in $maildir/.$c.directory/$d/new/*; do
                formail -I Status: <"$file" >>$mbox-$c-$d
            done
        } || true
        for file in $maildir/.$c.directory/$d/cur/*; do
            formail -a "Status: RO" <"$file" >>$mbox-$c-$d
        done
    done
    for d in $plain; do
        echo copy mbox-file $mbox-$c-$d
        cp $maildir/.$c.directory/$d $mbox-$c-$d
    done
done

exit 0
#-------------------------8<----------------------------------

Gruß,
			Axel



Mehr Informationen über die Mailingliste linux-l