如何根据每个发件人的累积邮件(包括正文和附件)在我的 Gmail 帐户中占用的空间总量对电子邮件发件人(不同的“发件人”地址)进行排序?我在想这样的事情:
- 通过 IMAP 将我的所有消息下载到本地客户端,例如 Thunderbird
- 以某种方式将电子邮件数据转换为可以查询的数据库
- 使用 SQL 之类的工具来查询数据库并获取每个发件人的总消息大小
谁能帮我充实一下这个吗?
如何根据每个发件人的累积邮件(包括正文和附件)在我的 Gmail 帐户中占用的空间总量对电子邮件发件人(不同的“发件人”地址)进行排序?我在想这样的事情:
谁能帮我充实一下这个吗?
您可以在Thunderbird中完成此操作,无需外部软件。
第 1 步:获取数据
进入Google Takeout ( https://takeout.google.com/ ) 并下载所有 Gmail 邮件的完整副本。您将获得 MBOX 格式的所有内容,然后可以将其导入客户端。
或者,将客户端配置为使用IMAP直接下载邮件。
第 2 步:对电子邮件进行分组
转到收件箱,选择右上角的“消息显示列表选项”图标,然后选择“表格视图”
再次选择相同的图标,然后在“排序依据”选项中选择“来自”
最后,再次选择相同的图标,然后在“排序依据”选项中,选择“按排序分组”
第 3 步:查看数据
单击每个组。在邮件预览侧的底部,您将收到有关该组电子邮件的累积大小的提示。
例如,它会显示“这些消息占用 4.7 KB”之类的内容。
我基本上使用脚本来完成此操作。虽然它不能直接在超级用户上共享,但它执行的基本步骤如下:
SELECT
给定文件夹²SEARCH
来自给定范围的电子邮件((SINCE "<date>") (NOT DELETED))
FETCH
对于每封电子邮件³ 字段(RFC822.SIZE BODY.PEEK[HEADER.FIELDS (FROM)])
对于一次性运行,您甚至可以在单个会话上手动执行此操作(您将其复制到文件以供以后解析)。请记住,IMAP 要求您为每个命令添加(任意)标记作为前缀,⁴ 并且回复将具有相同的标记,但也可能存在混合的未标记响应。
会话可能如下所示:
注意:上面的电子邮件大小为 9999、9989 和 9889。
UID FETCH
范围 1:65530 基于 UIDNEXT 为 65530。今天,Gmail 中最简单的方法是使用应用程序密码。目前仅在启用 2FA 的情况下才可用。
² 在您的情况下,您可能会对 Gmail 的特殊“所有邮件”“文件夹”感兴趣。使用仅包含少量项目的一个进行测试。
³ 实际上以 100 封电子邮件为一组。
⁴ 样品上的 x1、x2、x3、x4、x5