【问题标题】:Unable to get the unread mails from office365 mail box using PHP imap_headers() function无法使用 PHP imap_headers() 函数从 office365 邮箱获取未读邮件
【发布时间】:2015-02-08 10:31:09
【问题描述】:

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

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

对此的任何意见都非常有帮助.....谢谢:)

【问题讨论】:

    标签: php email outlook imap office365


    【解决方案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");
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2019-02-21
    • 2012-05-07
    • 2017-06-02
    • 2021-07-26
    • 1970-01-01
    • 2020-05-30
    相关资源
    最近更新 更多