【问题标题】:changing maildir order更改邮件目录顺序
【发布时间】:2009-01-23 22:41:11
【问题描述】:

我最近问过this question,发现一封电子邮件显示乱序的原因实际上并不是因为日期,而是因为消息的顺序。我想修改我的脚本以确保所有消息的顺序正确,但我不确定如何执行此操作。它只是基于文件出现的顺序,还是 maildir 标头的特殊部分指定了这一点?

这是我的意思的一个例子:Example

一般来说,我使用的每一个 MUA,包括 Thunderbird、Evolution 和 mail2web.com 都可以按日期排序,但默认按“消息编号”排序。我在一个共享主机上,我相信它使用 qmail。消息编号标签信息必须保存在某处。

edit:我尝试将所有文​​件移动到临时目录并再次返回,这表明它是负责消息编号的文件顺序。然而,我不确定为什么 12 月几天的消息被移动到比这些日期两侧的消息数量低得多的数量。文件名是时间戳,应该是连续的,所以除非 mv 以奇怪的顺序拍摄文件,否则我不明白为什么这些特定文件的消息编号不会恢复。

【问题讨论】:

    标签: bash unix email scripting maildir


    【解决方案1】:

    使用 maildirs,消息没有固有的顺序。显示它们的程序可以按照它希望的顺序显示它们,这可能是随机的,但也可以基于,例如,日期标题。

    您的示例没有识别显示它们的程序,任何人都可以猜测它是如何订购邮件的。您需要弄清楚它的作用并修复它以按照您想要的顺序订购邮件。

    编辑:Maildir specification 可能对挖掘有用。如果您的 MTA 确实通过放置可靠的时间戳创建了唯一的文件名,您也许可以按文件名排序。即使是这样的文件名也不能保证,它可能对你来说已经足够了。

    【讨论】:

    • 我查看了 maildir 规范,乱序电子邮件的文件名有一个可靠的时间戳,应该是有序的。请参阅我上一个问题的链接中的文件名示例
    • 在这种情况下,我最好的猜测是 MUA 使用一些启发式方法为邮件分配编号,这些启发式方法并非来自邮件目录中的文件名或其他数据,但可能基于 MUA 的顺序首先查看邮件,并且可能还基于用户删除邮件的顺序。
    • 嗯。我将尝试将所有文​​件移动到 tmp 目录,然后再返回
    • 好的,肯定是基于文件“顺序”,因为移动文件的结果是顺序改变了,但是不正确。但是,如果文件名是时间戳,它们应该是连续的,并且按顺序移动,所以我不确定为什么 mv 会偶尔移动它们
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 2016-09-25
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    相关资源
    最近更新 更多