PHP网页邮件应用,如何唯一标识它们


php web mail application, how to uniquely identify them

我目前正在构建一个php脚本,使用imap函数从服务器获取电子邮件,并将详细信息存储在数据库中。

我的问题是我不知道如何从已经存在的旧邮件中识别新邮件。以及如何获取发送到邮箱的回复邮件

使用UID消息来确定最后一条消息,您必须将最后一个UID存储在表

  $uidsArray = imap_sort($imapConnection, SORTARRIVAL, 1, SE_UID);
  if ($uidsArray) {
      // read UID last message, XEmailUID - table(mailbox, lastuid mailbox)
      $lastUIDObject = new XEmailUID();
      $lastUIDObject->setImap($mailbox->getId().'/'.$mailboxRef);
      if (!$lastUIDObject->select()) {
           $lastUIDObject->insert();
      }
      $uidMax = 0;
      foreach ($uidsArray as $uid) {
        if ($uid < $lastUIDObject->getUid()) {
           continue;
        }
        if ($uid >= $uidMax) {
            $uidMax = $uid;
        }
       // your function
       $this->_readIMAPMessage(
          $imapConnection,
          $uid,
          $mailboxRef
       );
      }
      if ($uidMax > 0) {
         $lastUIDObject->setUid($uidMax);
         $lastUIDObject->update();
      }
   }