Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从hMailServer中检索具有消息\u id的消息?_Php_Imap_Hmail Server - Fatal编程技术网

Php 如何从hMailServer中检索具有消息\u id的消息?

Php 如何从hMailServer中检索具有消息\u id的消息?,php,imap,hmail-server,Php,Imap,Hmail Server,我已经安装了hMailServer,希望将电子邮件集成到我们的应用程序中。我已经建立了一个原型,它获取所有文件夹(imap_mailboxmsginfo),然后从所有文件夹中获取所有消息(imap_fetch_overview),然后从每个电子邮件中获取数据,例如(imap_body),我可以在本地保存这些数据 但是,如果一个用户在100个文件夹中有10000封电子邮件,然后我想检查他自上次我从hMailServer下载电子邮件以来是否阅读过特定的电子邮件,那么我必须获取所有文件夹,从每个文件夹

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

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

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


有没有办法(1)从hMailServer获取带有消息id的电子邮件,或者(2)从hMailServer获取特定邮件被删除、标记或移动到其他文件夹的通知?PHP电子邮件客户端是如何解决这个问题的?

在我创建的web邮件中,我使用了两种数据(邮件编号和文件夹)来读取和删除邮件等,效果很好

如果要为每封邮件获取唯一的id,请使用此函数imap\U uid。 它返回邮箱文件夹中的唯一id和邮件编号

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

在我创建的web邮件中,我使用了两种数据(邮件编号和文件夹)来读取和删除邮件等,效果很好

如果要为每封邮件获取唯一的id,请使用此函数imap\U uid。 它返回邮箱文件夹中的唯一id和邮件编号

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