2010-07-11 31 views
3

我想修改存储为文本文件的电子邮件。我首先导入这样的消息:保存一个email.Message对象到一个文件

import email 
f = open('filename') 
msg = email.message_from_file(f) 

然后,我使用电子邮件模块的功能进行所需的所有修改。

最后一步是将Message对象(msg)保存在文件中。什么是这样的代码片段?似乎没有任何简单的功能,如“message_to_file()”...

非常感谢。

回答

5

Messsage.as_string method应该给你的消息的扁平版本,你可以写出来就像你其他任何字符串:

msg.as_string()

如果不能提供确切的格式你想,考虑尝试email.generator模块?如果我正确读取的事情,你应该能够做这样的事情:

generator = email.generator.Generator(out_file) 
generator.flatten(msg) 

假设out_file是一个开放的和可写的文件和msg是你的消息。

+0

你所描述的两种方法工作得很好! – mimo 2010-07-11 13:03:14

+0

@Blair Conrad如果我在我的电子邮件中有附件(说出一些tar.gz文件),我应该怎么做才能在一个文件中保存带有消息的附件? – Dilawar 2012-03-05 15:56:31