我试图使用php中提供的imap_headers
和imap_header()
函数来阅读gmail邮箱,它运行正常,没有任何问题。这里的gmail imap_header()
函数只提供未读取邮件的计数,imap_headers($message_number)
函数将消息号作为输入,并返回邮件的头信息。执行imap_fetchstructure()
和imap_fetchbody()
邮件将被标记为已读,并且该邮件将不会在下次运行时出现,因为它已标记为已读。
现在,当我使用office365帐户时,函数imap_header()
将返回收件箱中所有邮件的计数,而不是未读邮件计数,这与前一种情况imap_fetchstructure()
和{{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");
}