无法使用PHP imap_headers()函数从office365邮箱获取未读邮件

时间:2014-12-10 09:31:43

标签: php email outlook imap office365

我试图使用php中提供的imap_headersimap_header()函数来阅读gmail邮箱,它运行正常,没有任何问题。这里的gmail imap_header()函数只提供未读取邮件的计数,imap_headers($message_number)函数将消息号作为输入,并返回邮件的头信息。执行imap_fetchstructure()imap_fetchbody()邮件将被标记为已读,并且该邮件将不会在下次运行时出现,因为它已标记为已读。

现在,当我使用office365帐户时,函数imap_header()将返回收件箱中所有邮件的计数,而不是未读邮件计数,这与前一种情况imap_fetchstructure()和{{1}相反没有将邮件标记为已读取,因此也会在下一个作业周期中跟踪读取的邮件。

对此的任何输入都非常有用.....谢谢:)

1 个答案:

答案 0 :(得分:1)

imap_header()将为您提供所有邮件作为其定义。 您应该使用imap_search()来填充未读邮件。 您可以使用以下代码:

$ imapobj = imap_open(SERVER,USERNAME,PASSWORD);

$ result = imap_search($ imapobj,' UNSEEN');

foreach($ result as $ res => $ value){

$ maildetails = imap_headerinfo($ value);

$ status = imap_setflag_full($ imapobj,$ value," \ Seen");

}