Question

Im changer les hôtes et je dois convertir mes comptes maildir sur mon ancien serveur mbox sur mon nouveau serveur.

Toutes les idées sur la meilleure façon de le faire?

Je trouve ceci:

pour i dans la nouvelle / * cabot / *; faire formail < » i $ » >> ../ Mbox, fait

Mais je ne comprends pas vraiment. J'ai une connaissance de base de linux et j'ai accès root à mon serveur via ssh.

La plupart du dossier Maildir le contenu suivant:


cabot
nouveau
tmp
dovecot.index.log
colombier-uidlist
dovecot.index
dovecot.index.log.2
dovecot.index.cache
colombier-keywords
abonnements


Ai-je besoin de tout cela ou puis-je ignorer les fichiers colombier?

Tout conseil serait grandement apprécié.

C

Était-ce utile?

La solution

Si vous avez accès aux deux serveurs via imap (ou peut organiser temporairement), vous voudrez peut-être envisager d'utiliser un outil de imapsync, par exemple:

http://freshmeat.net/projects/imapsync/

Si cela ne fonctionne pas, vous devriez être en mesure d'ignorer les fichiers colombier, mais méfiez-vous que vous perdrez probablement des informations telles que les messages sont lus et les drapeaux fixés sur les messages. (La méthode imapsync conserverait toutes ces choses.)

Autres conseils

Si l'on a besoin de convertir un compte maildir dans un compte de boîte aux lettres sans mailservers de réglage, on peut utiliser la bibliothèque de boîte aux lettres de python. Si on a un seul dossier maildir pour convertir, on peut utiliser ce petit script python (10 lignes + commentaires) trouvé ici . Si l'on a sous-dossier, il faut explorer la structure du sous-dossier, ce qui est différent entre les deux formats. Cela donne le script suivant:

#!/usr/bin/env python 
# -*- coding: utf-8 -*-
"""
Frédéric Grosshans, 19 January 2012
Nathan R. Yergler, 6 June 2010

This file does not contain sufficient creative expression to invoke
assertion of copyright. No warranty is expressed or implied; use at
your own risk.

---

Uses Python's included mailbox library to convert mail archives from
maildir [http://en.wikipedia.org/wiki/Maildir] to 
mbox [http://en.wikipedia.org/wiki/Mbox] format, icluding subfolder.

See http://docs.python.org/library/mailbox.html#mailbox.Mailbox for 
full documentation on this library.

---

To run, save as md2mb.py and run:

$ python md2mb.py [maildir_path] [mbox_filename]

[maildir_path] should be the the path to the actual maildir (containing new, 
cur, tmp, and the subfolders, which are hidden directories with names like 
.subfolde.subsubfolder.subsubsbfolder);

[mbox_filename] will be newly created, as well as a [mbox_filename].sbd the 
directory.
"""

import mailbox
import sys
import email
import os

def maildir2mailbox(maildirname, mboxfilename):
    """
    slightly adapted from maildir2mbox.py, 
    Nathan R. Yergler, 6 June 2010
    http://yergler.net/blog/2010/06/06/batteries-included-or-maildir-to-mbox-again/


    """
    # open the existing maildir and the target mbox file
    maildir = mailbox.Maildir(maildirname, email.message_from_file)
    mbox = mailbox.mbox(mboxfilename)

    # lock the mbox
    mbox.lock()

    # iterate over messages in the maildir and add to the mbox
    for msg in maildir:
        mbox.add(msg)

    # close and unlock
    mbox.close()
    maildir.close()

#Creates the main mailbox
dirname=sys.argv[-2]
mboxname=sys.argv[-1]
print(dirname +' -> ' +mboxname)
mboxdirname=mboxname+'.sbd'
maildir2mailbox(dirname,mboxname)
if not os.path.exists(mboxdirname): os.makedirs(mboxdirname)

listofdirs=[dn for dn in os.walk(dirname).next()[1] if dn not in ['new', 'cur', 'tmp']]
for curfold in listofdirs:
    curlist=[mboxname]+curfold.split('.')
    curpath=os.path.join(*[dn+'.sbd' for dn in curlist if dn])
    if not os.path.exists(curpath): os.makedirs(curpath)
    print('| ' +curfold +' -> '+curpath[:-4])
    maildir2mailbox(os.path.join(dirname,curfold),curpath[:-4])

print('Done')
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top