如何备份Outlook中的邮件到Gmail? 问题结束

状态:已解决 悬赏:10 分 [ 收藏本页 打印 ]

在使用Gmail之前,都是用Outlook Express(OE)来处理邮件,有段时间也用过Foxmail、
Thundmail等。我有个习惯,喜欢把稍微有点价值的信件都保留下来,说不定哪天就用得着
。尤其是跟好朋友之间的往来信件,都被当作历史留痕保存下来。时间一长,积累了几百封
邮件,部分囤积在OE中,不太好管理。

Gmail具有大容量、便于搜索、可靠等优点,把这些邮件都转移到GMail中是个不错的办法。
为了便于管理邮件,最好将邮件一封一封的转发到GMail中,同时还能保留发信人、收信人
和时间等信息。

那么如何备份Outlook中的邮件到Gmail呢?

创建日期:2007-4-6 17:03:26 提问者:我们的吻 等级:Lv.1 头衔:试用期

最佳回答

OE中的邮件可以另存为eml格式的文件,但一次只能保存一封邮件。有一个方法可以一次性
导出多封邮件:选中OE中的多封邮件,拖放到资源管理器的一个文件夹中,OE会自动把这些
邮件以eml格式存储到该文件夹中,并由邮件标题生成合适的文件名,避免重复。最好每次
拖放到一个空的文件夹中,两次拖放之间不能保证文件名不重复。

现在需要做的是把这些以eml格式存储的邮件原样地发送到Gmail中。Python中读取eml格式
非常简单,用email.message_from_file()即可。曾经写过利用外部SMTP服务器转发邮件的
程序,整个实现起来没什么问题,完整的程序如下:
import email,smtplib
import os

def forward(toAddr, msg):
    server = smtplib.SMTP( SMTP_SERVER )
    server.login( SMTP_USER, SMTP_PASS )
    server.sendmail( SENDER, toAddr, msg )
    server.quit()
    return True

def backup(dir):
    for root,dirs,files in os.walk(dir):
        for name in files:
            print name
            msg = email.message_from_file( open( os.path.join(root,name) ) )
            sendmail.forward('davies.liu@gmail.com',msg.as_string())
            os.remove(os.path.join(root,name))

backup( 'email' )


创建日期:2007-4-6 17:03:26 回答者:sunlily 等级:Lv.1 头衔:试用期

提问者评价(为什么选择本回答作为最佳回答):