2

我使用 imap 将一堆电子邮件移到了服务器上。当他们加载到服务器上时,修改日期与所有电子邮件的日期相同。因此,当我在 mac 邮件中使用 imap 时,它会将我所有的电子邮件显示为 9 月 30 日收到。

电子邮件的标题包含正确的日期,因此圆形立方体显示正确的日期,因为我认为它正在从标题中提取信息。

Mac 邮件和其他邮件程序从创建、修改和/或访问的日期提取信息。(我不确定是哪一个,所以我把它们都改了)

我可以手动更改修改、创建和访问的日期以匹配标头发送日期,但要为 2000 封电子邮件做很多工作。

您知道我可以将修改和创建日期作为一个批次更改的方法,以使它们与每个电子邮件文件中的标题日期匹配吗?

无论如何要通过cron来做到这一点?

我可以在 Ubuntu 中使用 bash 或使用 Windows,任何一个都可以。

文件中的标题如下所示:

Return-Path: <jane@example.com>
From: <jane@example.com>
To: <joe@example.com>
Cc: "Mike" <mike@example.com>
Subject: Example Subject
Date: Mon, 29 Sep 2014 10:23:34 -0400
Message-ID: <763765530.23306569.1412000614673.JavaMail.root@example.net>
MIME-Version: 1.0

日期线本身:

日期:2014 年 9 月 29 日星期一 10:23:34 -0400

4

1 回答 1

3

首先,cd到文件所在的目录。然后运行:

for f in *
do
    touch -d "$(sed -n 's/^Date://p' "$f" | head -n1)" "$f"
done

以上用于sed从文件中提取“日期:”信息,然后用于touch将该日期分配给文件。

这是使用 GNU 工具测试的。Mac OSX 工具有时会有所不同。

于 2014-10-02T20:21:55.203 回答