evolution 采用什么格式存储邮件?

evolution 采用什么格式存储邮件?

我的 evolution (3.0.3) 有一个 maildir 目录:

~/.local/share/evolution/mail/local/
                                    cur/##########.######_#.username:2,S
                                    cur/#########.######_#.username:2,S
                                    folders.db
                                    new/
                                    tmp/

folders.db其中说了一些内容sqlite,我无法判断该文件中是否有邮件消息;下面的文件cur似乎有消息;但它们不是mbox格式化的,并且看起来我在“在此计算机上”下的所有消息都不在这些文件中。

没有~/.evolution/目录。

evolution 是如何存储其电子邮件的(如果我没有在正确的地方查找的话,它存储在哪里呢?)

答案1

默认的本地文件夹实现(针对“在此计算机上”下的文件夹)使用 mbox(5) 格式,其中每个文件夹顶层的所有邮件都连续保存在一个文件中,并辅以一些摘要和索引文件。此结构位于 ~/.evolution/mail/local/ 下。对于每个邮件文件夹 foo,都存在以下部分或全部文件:

foo
foo.cmeta
foo.ev-summary
foo.ev-summary-meta
foo.ibex.index
foo.ibex.index.data    
foo.sbd

文件 foo 只是普通的 mbox(5) 格式,您可以使用能够理解 mbox 格式(即几乎所有 mbox 格式)的 MUA 来访问它(小心,最好是只读的)。例如使用“mutt”:

$ mutt -R -f ~/.evolution/mail/local/foo

您应该只在 Evolution 本身未运行时执行此操作。请注意,任何补充文件都可以删除,Evolution 将在下次运行时重建它们。您还可以 grep 文件中的文本字符串或地址,以便在普通 UNIX 世界中使用。

foo 文件仅包含消息。如果 foo 文件夹包含其他文件夹,则 foo.sbd 目录的内容将递归地类似于上面的列表。

我可以毫不犹豫地说,我从思考中得到了这个答案常见问题解答-进化网页。您可以查看该网页以获取更多信息。

答案2

进化利用邮箱目录++本地文件夹的规范,如这次提交。这些电子邮件最终都会存放在一个cur文件夹中,每个邮件都会存放在一个单独的文件中,文件名称如下:

TIMESTAMP.PID_INCREMENT.HOSTNAME:VERSION,FLAGS

VERSION 始终为 2。FLAGS 是这些单词的首字母:Passed、Replied、Seen、Trashed、Draft 和 Flagged。

其他邮件阅读器(例如)mutt应该能够使用这些文件夹。但它不会在子文件夹中递归:

mutt -f ~/.local/share/evolution/mail/local/.Archives

答案3

在我的 Evolution 版本中:

dpkg --status evolution | grep -i version
Version: 3.18.5.2-0ubuntu1

本地文件夹(“在此计算机上”): ~/.local/share/evolution/mail/local/.<folder_name>

ls -a ~/.local/share/evolution/mail/local/ . .. ._2EDrafts ._2EDrafts.cmeta ..cmeta cur .Drafts .Drafts.cmeta folders.db ..maildir++ new .Outbox .Outbox.cmeta .Sent .Sent.cmeta .Templates .Templates.cmeta tmp

如果您想查看缓存的 IMAP 电子邮件,例如:

~/.cache/evolution/mail

您的文件夹和 mbox 邮件都会在那里:

ls ~/.cache/evolution/mail/1441623493.6846.2@ubuntu/folders
Calendar  Contacts  Deleted Items  Drafts  INBOX  Journal  Junk Email  Notes  Outbox  Sent Items  Tasks  Trash

 grep -R 'mailfrom' ~/.cache/evolution/mail | head -n3 
~/.cache/evolution/mail/1441623493.6846.2@ubuntu/folders/INBOX/cur/3d/655:  smtp.mailfrom=yy@xyz; 
~/.cache/evolution/mail/1441623493.6846.2@ubuntu/folders/INBOX/cur/16/513: smtp.mailfrom=yy@xyz; 
~/.cache/evolution/mail/1441623493.6846.2@ubuntu/folders/INBOX/cur/16/512:  smtp.mailfrom=yy@xyz; 

答案4

来自 Evolution 中的帮助文档;

Evolution 3.6 及更高版本根据 XDG 基本目录规范存储其数据。默认情况下,这意味着:

用户的数据文件

$HOME/.local/share/evolution

各种配置和状态文件

$HOME/.config/evolution

帐号设定

$HOME/.config/evolution/sources

一次性数据缓存

$HOME/.cache/evolution

GSettings 中的配置设置

$HOME/.config/dconf

相关内容