- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在更换主机,我需要将旧服务器上的 maildir 帐户转换为新服务器上的 mbox。
关于执行此操作的最佳方法有什么想法吗?
我发现了这个:
for i in new/* cur/*;do formail <”$i” >> ../mbox;done
但是我不是很懂。我对 Linux 有基本的了解,并且可以通过 ssh 以根用户身份访问我的服务器。
大多数 Maildir 文件夹都有以下内容:
当前
新
临时工
dovecot.index.log
dovecot-uidlist
dovecot.index
dovecot.index.log.2
dovecot.index.cache
鸽舍关键字
订阅
我需要所有这些还是可以忽略 dovecot 文件?
如有任何建议,我们将不胜感激。
C
最佳答案
如果需要在不设置mailservers的情况下将maildir账户转换为邮箱账户,可以使用python的邮箱库。如果只有一个 maildir 文件夹要转换,可以使用找到的这个小(10 行+注释)python 脚本 here .如果有子文件夹,则需要探索子文件夹结构,这在两种格式之间是不同的。这给出了以下脚本:
#!/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')
关于linux - 将 Maildir 转换为 mbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2501182/
我如何安全地,并希望使用 Maildir 的标准 python 工具,找到 Maildir 消息的完整文件名和路径。我想在删除之前将邮件消息文件写入 tarfile。 我正在导入邮箱和 tarfile
我正在清理一些旧的 Maildir 文件夹,并查找名称如下的消息: 1095812260.M625118P61205V0300FF04I002DC537_0.redoak.cise.ufl.edu,S
我正在使用 offlineimap 检索我的电子邮件到我用 mu 索引的本地邮件目录(读/写是在 mu4e 中使用 emacs 完成的)。 从服务器加载所有电子邮件后,我的 Maildir 文件夹大小
我最近使用 zpanel(使用 dovecot 和 Maildir 格式)为我的域设置邮件服务器,并使用 user@my-domain 创建了一个用户电子邮件帐户。 com 在这里。 这里所有的电子邮
我必须更改我的虚拟邮件文件夹树。 我已经配置了一个新的邮件服务器,现在我必须导入我的旧虚拟邮箱。 我的旧目录是/var/spool/vmail/domain.com/account/Maildir在里
我需要解析从 unix maildir 读取的多部分电子邮件文件。您能否推荐一个合适的库来执行此操作? 电子邮件通过 IMAP 接收并转储到 maildir。我需要解析这些电子邮件文件并提取所有部分,
我想找出 Maildir 文件夹中的“发件人”地址列表。使用以下脚本,它说明了在 From 中有效的各种格式: import mailbox mbox = mailbox.Maildir("/home
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我正在更换主机,我需要将旧服务器上的 maildir 帐户转换为新服务器上的 mbox。 关于执行此操作的最佳方法有什么想法吗? 我发现了这个: for i in new/* cur/*;do for
我正在使用 offlineimap 将我的 gmail 帐户同步到 locak maildir,然后使用 gnus 读取该目录一切正常,但 gnus 使用自己的标志来标记消息的已读未读状态,并且它们不
我有一个邮件目录: foo@foo:~/Maildir$ ls -l total 288 drwx------ 2 foo foo 155648 2010-04-19 15:19 cur -rw---
这实际上是两个问题,但它们的关系非常密切。 我正在开发一个 Java 应用程序,它将处理以 UNIX 风格的 MailDir 格式存储的电子邮件。我正在使用 JavaMail API,发现 JavaM
在 OTRS 中,我有一个包含电子邮件的数据库。我在名为“article_plain”的表中有原始电子邮件(eml 格式)。 我可以使用如下语句轻松转储此内容: SELECT ap.body FROM
我是一名优秀的程序员,十分优秀!