我已经安装了 hMailServer,并且想将电子邮件集成到我们的应用程序中。我已经建立了一个原型,它获取所有文件夹(imap_mailboxmsginfo),然后从所有文件夹中获取所有消息(imap_fetch_overview),然后从每个电子邮件中获取数据,例如(imap_body),我可以将这些保存在本地。
但是,如果一个用户在 100 个文件夹中有 10,000 封电子邮件,然后我想检查他是否在我上次从 hMailServer 下载电子邮件后阅读了特定的电子邮件,我必须得到所有文件夹,从每个文件夹中获取所有电子邮件,然后在它们中搜索唯一的 message_id,直到找到有问题的电子邮件。
我必须这样做,因为“msgno”根本不是唯一的,并且“uid”仅对每个文件夹都是唯一的,如果用户将电子邮件从一个文件夹移动到另一个文件夹,它会更改其“uid”。并且无法访问我在 hMailServer 数据库的 hm_messages 表中看到的“messageid”。因此,“message_id”似乎是我唯一识别电子邮件的唯一方法,但我没有找到允许我通过指定 message_id 从 hMailServer 获取消息的 PHP/IMAP 函数。
有没有办法 (1) 从 hMailServer 获取带有 message_id 的电子邮件,或者 (2) 从 hMailServer 获取通知,例如特定邮件已被删除、标记或移动到另一个文件夹?PHP 电子邮件客户端如何解决这个问题?