【问题标题】:webklex laravel-imap references in header标头中的 webklex laravel-imap 引用
【发布时间】:2021-09-21 20:49:44
【问题描述】:

我仍在努力使用 webklex laravel-imap 包处理电子邮件线程,我正在尝试理解标题信息,主要是参考。基本上,每当我抓取收件箱并有新回复时,我只想获取该回复的正文并将其作为前端的评论(因此将该回复的正文保存在数据库中)

我认为做到这一点的一种方法是在当前消息上方注入一个令牌,这样当他们响应时,我就可以解析任何直到该标记点的内容。

无论如何,我使用$oMessage->getHeaderInfo() 来获取标题,然后存储每封电子邮件的 message_id。我想我可能还需要存储引用,以便我可以跟踪的回复,但我没有完全理解我在这里得到的参数:

        Message_id for original message
            <BN9PR12MB50662E9B5341983E744821B4D1159@BN9PR12MB5066.namprd12.prod.outlook.com>

        After I've replied to that email and the sender has responded back to me (total of 3 messages in thread now)

        in_reply_to: 
            <BYAPR12MB2904B9CD0C265DDBCBBB920288159@BYAPR12MB2904.namprd12.prod.outlook.com>
        Message_id: 
            <BN9PR12MB5066274555ED3DB67B7F001FD1159@BN9PR12MB5066.namprd12.prod.outlook.com>
        references: 
            <BN9PR12MB50662E9B5341983E744821B4D1159@BN9PR12MB5066.namprd12.prod.outlook.com><BYAPR12MB2904B9CD0C265DDBCBBB920288159@BYAPR12MB2904.namprd12.prod.outlook.com>

因此,原始电子邮件的 message_id 是引用对象中的第一个 id,这是有道理的。似乎in_reply_to 正在显示线程中第二条消息的 message_id(我对原始电子邮件的回复),然后引用对象中的另一个 id 是链中当前(第三个)电子邮件的 message_id。

这听起来正确吗?只要我在参考中寻找原始message_id,那么我应该能够将线程跟踪到最后?

【问题讨论】:

    标签: php laravel imap


    【解决方案1】:

    In-Reply-To 存储直接被回复的消息的 message-id。通过这种方式,线程电子邮件客户端(如 Thunderbird,而不是 gmail)可以显示整个回复树。这就是系统如此复杂的原因:它不仅仅是跟踪一堆相关的电子邮件,它还跟踪哪个消息是对哪个消息的回复的确切关系。

    这曾经被认为很重要,并且反映在许多旧的电子邮件和新闻类型的客户端中。

    【讨论】:

    • 另外,一些较新的电子邮件服务器和协议将使用此信息来跟踪简单的“线程 ID”(例如,gmail 的 X-THREADID 扩展或更新的 ActiveSyncs 线程 ID),以使其对于不关心整棵树的客户来说更简单。
    • 我正在使用 Outlook (Office 365),所以我必须看看这是否适用于这里,否则我想我可以使用参考和回复。我想如果我保存每条消息的 message_id,那么我可以对照其他人的参考来检查它,并在数据库中创建一个父 message_id
    • 只要您的所有目标客户设置 References 标头。不幸的是,这是客户端设置,而不是服务器的真正功能。祝你好运!
    猜你喜欢
    • 2021-04-02
    • 2011-08-26
    • 2019-08-21
    • 2020-12-27
    • 2011-08-27
    • 2021-09-18
    • 2013-07-17
    • 1970-01-01
    • 2013-03-16
    相关资源
    最近更新 更多