当我运行一个非常简单的imap_search
在我的 GMail 收件箱中,搜索返回的邮件数量少于应有的数量。
这是任何拥有 GMail 帐户的人都可以运行的脚本。
$host = '{imap.gmail.com:993/imap/ssl}';
$user = 'foo';
$pass = 'bar';
$imapStream = imap_open($host,$user,$pass) or die(imap_last_error());
$messages = imap_search($imapStream,"ALL");
echo count($messages);
imap_close($imapStream);
这将返回 39 条消息。但是,我的收件箱中有 100 封邮件,其中一些是捆绑在对话中的,一些是从另一个帐户 (SquirrelMail) 转发的。
任何人都可以重复这些结果,和/或告诉我发生了什么事吗?
我尝试过的其他服务器字符串都返回相同的结果:
{imap.gmail.com:993/imap/ssl/novalidate-cert}
{imap.gmail.com:993/imap/ssl/novalidate-cert}INBOX
{imap.gmail.com:993/imap/ssl}INBOX
GMail IMAP 功能支持:
在严重脱发之后,我找到了答案。这是一个误导性的用户界面。
默认情况下,GMail 将邮件分组为“对话”。这些对话可以包括存档的消息。
例如,鲍勃的收件箱好像有 4 个对话,共 25 条消息,显然应该返回 100 条收件箱消息。实际上,其中 60 封邮件位于存档中(而不是收件箱),因此imap_search()
回报40
。这些消息会神奇地从存档中提取出来并放入收件箱对话中。
In the 设置->常规菜单中,您可以切换对话视图,这会将所有那些顽皮的存档消息放回到它们所属的位置,并显示您真正的收件箱视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)