Pregunta

Im cambiar anfitriones y necesito convertir mis maildir cuentas en mi antiguo servidor para mbox en mi nuevo servidor.

Cualquier ideas sobre la mejor manera de hacer esto?

he encontrado esto:

para i en nuevas / act * / *; hacer formail <”$ i” >> ../ mbox; hecho

Pero Realmente no lo entiendo. Tengo un conocimiento básico de Linux y no tengo acceso root a mi servidor a través de SSH.

la mayor parte de la carpeta Maildir tiene el siguiente contenido:


act
nueva
tmp
dovecot.index.log
palomar-uidlist
dovecot.index
dovecot.index.log.2
dovecot.index.cache
palomar-palabras clave
suscripciones


¿Es necesario que todos o puedo ignorar los archivos palomar?

Cualquier consejo sería muy apreciada.

C

¿Fue útil?

Solución

Si usted tiene acceso a ambos servidores a través de IMAP (o puede organizar temporalmente), es posible que desee considerar el uso de una herramienta imapsync, por ejemplo:

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

Si eso no funciona, debería ser capaz de ignorar los archivos palomar, pero ten en cuenta que es probable que la información perder así los mensajes que se leen y los indicadores establecidos en los mensajes. (El método imapsync preservaría todas esas cosas.)

Otros consejos

Si uno necesita para convertir una cuenta de directorio de correo en una cuenta de buzón sin servidores de correo de ajuste, se puede usar la biblioteca buzón de pitón. Si uno tiene una carpeta maildir única para convertir, se puede utilizar este pequeño (10 líneas + comentarios) script en Python encontró aquí . Si uno tiene subcarpeta, hay que explorar la estructura de subcarpetas, que es diferente entre los dos formatos. Esto da la siguiente secuencia de comandos:

#!/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')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top