我正在开发一个小型的网络邮件应用程序,我需要做的就是像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)));
$refs
数组是Message-Id's
的数组,任何人都可以告诉我如何根据Message-Id
获取邮件。
如果我可以从Message UID
获得Message Sequence Number
或Message-Id
也足够了。
我想到的一个替代方案是通过使用imap_search()
来搜索具有相同主题的邮件(在从其中剥离“Re:”之后),但我不认为这是理想的
任何人都可以给我一些有用的指示,如何解决这个问题? 提前致谢
答案 0 :(得分:5)
有些IMAP服务器允许您按消息ID(SEARCH HEADER Message-ID string
)进行搜索,但很多服务器软件似乎都很难实现这一点。
通常,无法通过其Message-ID标头获取消息。大多数客户下载所有邮件的标头(包括邮件ID),存储它们,然后对其进行后期处理,将它们与基于References
和In-Reply-To
标头的其他邮件进行匹配。但是:如果您使用的是Gmail,则可以使用其extensions获取Gmail的内部主题ID,并将其称为X-GM-THRID
。