POP3 не поддерживает непрочитанный флаг. Imap делает :-) Вы можете использовать Zend Framework, чтобы справиться с этим с помощью imap.
Я сделал это, чтобы найти «отскочившие» письма:
$subjectIfFailed = 'Delivery Status Notification (Failure)';
$bouncedMails = array();
$params = array(
'user' => $config->gmail->user,
'host' => $config->gmail->host,
'password' => $config->gmail->password,
'port' => $config->gmail->port,
'ssl' => (bool) $config->gmail->ssl,
);
$mailStorage = new Zend_Mail_Storage_Imap($params);
$count = $mailStorage->count();
$i = 1;
while ($i <= $count) {
$message = $mailStorage->getMessage($i);
if ($message->hasFlag(Zend_Mail_Storage::FLAG_SEEN) === false) {
if (strtolower($message->getHeader('subject')) ==
strtolower($subjectIfFailed)) {
$bouncedMails[] = $message->getHeader('x-failed-recipients');
}
}
$i++;
}
return $bouncedMails;