Python,从mbox文件

时间:2017-06-23 09:26:52

标签: python email parsing mime mbox

mbox文件中,我存储了一些电子邮件:他们也可以使用MIME。必须使用mbox脚本在Python3文件中提取它们,而不进行任何修改。我尝试了以下代码:

import mailbox

for message in mailbox.mbox('mboxfile'):
    mstring = message.as_string()
    print(mstring)

这似乎打印了电子邮件'原始内容。 mbox中的电子邮件总是使用\r\n来表示所有新行:有时他们只有\n。无论如何,在message.as_string()输出中始终使用\nmanual page中指定。

手册还说明了(约as_string()):

  

请注意,此方法是为方便起见而提供的,可能不是在应用程序中序列化消息的最有用方法,尤其是在处理多条消息时。

我无法完全理解这个建议可能意味着什么。我的mbox文件显然包含几封电子邮件,我想提取所有这些邮件。最重要的是,我希望获得存储在那里的完全相同的原始电子邮件,不需要任何修改,并为每行保留原始 { {1}}或\r\n,就像我在\n文件上使用cat一样。所以:

  • 我的代码是否是正确的方法?
  • 如果没有,这将是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

如果您希望内容不做任何修改,则可以简单地<Grid> <GridView ItemsSource="{Binding Items}"> <GridView.ItemTemplate> <DataTemplate> <StackPanel Height="100" Width="100" Background="Red"> <TextBlock Text="{Binding Name}"/> <Rectangle Height="20" Width="20" Fill="{Binding IsAvailable,Converter={StaticResource Converter}}"/> </StackPanel> </DataTemplate> </GridView.ItemTemplate> </GridView> </Grid> 每个print()

message

扩展名为import mailbox for message in mailbox.mbox('mboxfile.mbox'): print(message) 的文件只是很长的纯文本文件https://en.wikipedia.org/wiki/Mbox


还可以选择使用.mbox模块来处理电子邮件:https://docs.python.org/3/library/email.message.html