我们正在解析一个邮件收件箱,该收件箱已注册到邮件列表(Mailman),除了坐在那里并从邮件列表中的其他用户捕获电子邮件之外什么都不做。这将是PHP连接到电子邮箱,抓取新电子邮件并将它们放入MySQL数据库,以用作可搜索的Web存档。
我注意到很多主题都有RE:FW:FWD在他们面前(很明显),但是想知道在将数据库结果输出到网络时我是否不需要手动剥离它们来按主题分组页。
也许有一个PHP / Mail或PEAR类会自动处理我不知道的消息分组/线程。谢谢你的帮助!
答案 0 :(得分:5)
线程化它们的正确方法不是主题,而是Message-ID
和References
标题。 References
标头将包含以逗号分隔的所有先前相关Messgage-ID
标头的字符串。通过使用这些,主题行的实际内容变得不那么重要,因为它可以被修改和破坏。在其他情况下,您可能会获得许多单独的主题,其中包含“请求帮助”等主题,不应该一起使用。
答案 1 :(得分:1)
您可能希望查看References
和In-Reply-To
电子邮件标头。这些信息为您提供有关当前电子邮件回复的电子邮件的信息。
这里有一个很好的基于此信息的电子邮件线程算法:http://www.jwz.org/doc/threading.html