如何使用message_id从hMailServer检索消息?

时间:2015-06-30 11:09:31

标签: php imap hmail-server

我安装了hMailServer,并希望将电子邮件集成到我们的应用程序中。我已经设置了一个获取所有文件夹(imap_mailboxmsginfo)的原型,然后从所有文件夹(imap_fetch_overview)获取所有消息,然后从每个电子邮件中获取数据,例如: (imap_body),我可以在本地保存这些。

但是,如果用户在100个文件夹中有10,000封电子邮件,我想检查自上次从hMailServer下载电子邮件以来他是否读过特定的电子邮件,我有获取所有文件夹,从每个文件夹中获取所有电子邮件,然后在其中搜索唯一的message_id,直到找到有问题的电子邮件。

我必须这样做,因为“msgno”根本不是唯一的,并且“uid”仅对每个文件夹是唯一的,并且如果用户将电子邮件从一个文件夹移动到另一个文件夹,则它会更改其“uid” 。并且无法访问我在hMailServer数据库的hm_messages表中看到的“messageid”。因此,“message_id”似乎是唯一可以唯一识别电子邮件的方式,但我发现没有PHP / IMAP函数允许我通过指定message_id从hMailServer获取消息。

是否有办法(1)从hMailServer获取带有message_id的电子邮件,或者(2)从hMailServer获取通知的方式,例如:特定邮件被删除,标记或移动到另一个文件夹? PHP电子邮件客户端如何解决此问题?

1 个答案:

答案 0 :(得分:0)

在我创建的网络邮件中,我使用了数据(消息编号和文件夹)进行阅读和删除等,而且效果很好。

如果您想为每封邮件获取唯一ID,请使用此函数imap_uid。 它返回邮箱文件夹中的唯一ID和消息号。

在我看来,对于简单操作或创建路由规则的同步问题,直接使用数据库是一个坏主意。 我使用hmail数据库的唯一方法就是管理和统计数据。