【问题标题】:Is there a solution in php imap, to set custom flags?php imap 中是否有解决方案来设置自定义标志?
【发布时间】:2019-11-30 09:58:16
【问题描述】:

我正在使用 php imap 从邮件服务器获取电子邮件并将它们存储在我的服务中,我想从多个电子邮件服务器获取电子邮件..现在我正在使用 gmail 进行测试。 所以有很多电子邮件要接收,我想存储每封邮件的正文和附件.. 如您所知,这需要很多时间! 不得不提的是,我使用的是Laravel Webklex 包。

这是我的代码的一部分,以便更好地理解:

public function receiveEmails($criteria) 
{
    $client = $this->getClient();
    $folder = $client->getFolder('INBOX');
    switch ($criteria) {
       case 'ALL' :
         $messages = $folder->messages()->all()->leaveUnread()->limit(5)->get();
         break;
       case 'UNSEEN':
         $messages = $folder->query(null)->unflagged()->leaveUnread()->limit(5)->get();
         break;
    }

    return $messages;
}

/// after save emails to my server I call setFlag() function to change emails flag so next time get new emails

public function setFlag($messages)
{
    foreach ($messages as $message) {
      $message->setFlag(['flagged']);
    }
}

我还尝试按限制获取消息,例如最近 5 封电子邮件,或过去 5 天的电子邮件...按日期或数字过滤..

但我还必须向邮件服务器解释我已经收到了哪些电子邮件,以获取另一封最后的电子邮件.. 与我已经收到的电子邮件不同!

我的解决方案是使用标志...但是您知道每个标志在邮件服务器中都有一个用例,所以我不想使用默认标志..我想使用我的自定义标志..

但我不知道如何创建新标志并使用它。 如果有人知道答案,请与我分享.. 或者如果您认为无法定义自定义标志..请分享您对我的问题的解决方案。

感谢问候

【问题讨论】:

  • 您在一个(现在已被审核的)自我回答中链接到了这个问题。请投票以关闭为重复。
  • @GertArnold 不是重复的问题.. 但我提到的链接.. 可以解决它.. 以不同的方式。 ..我想我必须提到cmets中的链接..
  • 好的,好的。另一个问题是你的问题不是真正可以回答的,因为你没有显示代码,所以回答者没有什么可以通过的。因此,如果您正确回答自己的问题,它仍然是对未知问题的回答。下次请提出问题,包括minimal reproducible example

标签: php laravel imap


【解决方案1】:

在更改、测试和调试之后,我用这个解决方案解决了它:

我使用电子邮件日期.. 来获取新电子邮件.. 通过SINCE 搜索条件:

public function receiveEmails(string $lastDate)
{

   $client = $this->getClient();
   $folder = $client->getFolder('INBOX');

   if (empty($lastDate)) {
      $messages = $folder->query()->limit(10)->get();
   } else {
       $messages = $folder->query()->since($lastDate)->limit(10)->get();
   }

   return $messages;
}

所以我不需要使用标志.. 来获取新电子邮件, 只是要求 imap 从specified date 回复电子邮件直到现在.. 有限制.. 所以不要让 imap 检索很多邮件。

【讨论】:

    猜你喜欢
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    相关资源
    最近更新 更多