流明:带日期的IMAP库搜索不起作用

时间:2018-12-06 09:26:14

标签: php laravel imap lumen

我正在使用composer.json文件中的以下库

"php-imap/php-imap": "3.0.*",

我的代码在下面,

$folder['shortpath']="Inbox";
    new \PhpImap\Mailbox('{'.$mdata["server"].":993/imap/ssl}". $folder['shortpath'], $mdata["user"], $mdata["pass"], $dir);
                        $mailsIds = $mailbox->searchMailbox($mailbox, 'SINCE "01 December 2018"');
                        echo"<pre>";print_r($mailsIds);die;

它给了我一个空数组而不是UID值

12月1日之后,我总共有4封电子邮件

如果我使用以下代码,

$mailsIds = $mailbox->searchMailbox("ALL");
                            echo"<pre>";print_r($mailsIds);die;

然后它将给我所有电子邮件,直到收件箱中的日期为止

但是按日期搜索无法正常工作


如果我写下面的代码,那么它会给出错误:

 $mailsIds = $mailbox->searchMailbox('SINCE 01 December 2018');

错误:

IMAP method imap_search() failed with error: Unknown search criterion: SINCE 2018-12-06 09:32:32←

我发现我的解决方案如下,它对我有效,

我已使用

mailsIds = $mailbox->searchMailbox('SINCE "01 December 2018"');

但是在打开连接时,还要为“ US-ASCII”传递一个参数

new \PhpImap\Mailbox('{'.$mdata["server"].":993/imap/ssl}".
                    $folder['shortpath'], $mdata["user"], $mdata["pass"], $dir, "US-ASCII");

但是我的另一个问题是,它给了我基于给定日期的新邮件列表,

我需要所有更新的电子邮件,例如新邮件,从给定日期起标记为未读,已标记,未标记等。如何做到这一点?

表示在给定日期之前如何识别新电子邮件以及现有电子邮件中的任何活动

0 个答案:

没有答案