使用php imap使用消息ID获取电子邮件?

Adi*_*tya 2 php email gmail imap gmail-imap

我正在开发一个小型的webmail应用程序,我需要做的就是像Gmail那样处理电子邮件.

我计划通过获取references邮件(使用uid)然后将它们显示为一个线程来实现它.我得到这样的参考:

    $inbox = imap_open("{imap.example.org:143}INBOX", "username", "password");
    $email_number = imap_msgno($inbox,$uid);
    $overview = imap_fetch_overview($inbox,$email_number,0);
    $mess = $overview[0];
    $refs = array_filter(explode(' ', htmlentities($mess->references)));
Run Code Online (Sandbox Code Playgroud)

$refs数组是一个数组Message-Id's,任何人都可以告诉我如何基于a获取邮件Message-Id .

如果我可以得到一个Message UIDMessage Sequence Number从一个Message-Id也足够.

我想到的一个替代方案就是通过imap_search()用于搜索具有相同主题的邮件(在从其中剥离"Re:"之后)来实现这一点,但我不认为这是理想的.

任何人都可以给我一些有用的指示,如何解决这个问题?提前致谢

Max*_*Max 5

有些IMAP服务器允许您按Message-ID(SEARCH HEADER Message-ID string)进行搜索,但很多服务器软件似乎都很难实现.

通常,无法通过其Message-ID标头获取消息.大多数客户端下载所有消息的标头(包括消息ID),存储它们,然后对它们进行后处理,将它们与其他基于消息ReferencesIn-Reply-To标头的消息进行匹配.但是:如果您使用的是Gmail,则可以使用其扩展程序来获取他们调用的Gmail内部线程ID X-GM-THRID.