Php imap_msgno()为imap_search()返回的uid返回0

Php imap_msgno()为imap_search()返回的uid返回0,php,email,imap,Php,Email,Imap,我不知道如何调试,函数imap\u msgno()返回的是0,而不是消息编号,没有任何错误。这是出现问题的代码部分(带有调试信息): 这将返回许多int(12)int(10)Good | int(11)int(9)Good |……。但是,情况并非如此,它返回此信息(为清晰起见,添加了返回): 如您所见,$msgNo似乎是正确的。没有提供任何关于无效$msgNo行为的更多信息,我被分割为应该是有效的$msgNo,因为它是返回的imap\u search()的一部分。你知道如何调试它或者它出了什么问

我不知道如何调试,函数
imap\u msgno()
返回的是0,而不是消息编号,没有任何错误。这是出现问题的代码部分(带有调试信息):

这将返回许多
int(12)int(10)Good | int(11)int(9)Good |……
。但是,情况并非如此,它返回此信息(为清晰起见,添加了返回):


如您所见,
$msgNo
似乎是正确的。没有提供任何关于无效
$msgNo
行为的更多信息,我被分割为应该是有效的
$msgNo
,因为它是返回的
imap\u search()
的一部分。你知道如何调试它或者它出了什么问题吗?

除非它们是按搜索呼叫的顺序设置的,否则你返回的是消息号码,而不是唯一的ID。如果在imap_搜索调用中设置了seu UID选项,例如

$search = imap_search($this->open, 'SINCE "' . $date . '"', SE_UID);

您应该获得唯一的ID。

您是否混合了UID和消息序列号?
int(12) int(10) Good |
int(11) int(9) Good |
int(10) int(0) bool(false) |
int(9) int(0) bool(false) |
int(8) int(8) Good | 
...
$search = imap_search($this->open, 'SINCE "' . $date . '"', SE_UID);