Как использовать imap_search (), чтобы возвращать только непрочитанные сообщения, не просматривая каждое из них?

Поскольку POP3 не поддерживает флаги SEEN, используемые при установке IMAP, как вы можете использовать метод php imap_search () для получения только новых сообщений с сервера? Здесь есть несколько других подобных постов, которые оказались в тупиках, или пользователи, предлагающие проверить идентификатор сообщения в сохраненной базе данных, но нет четкого способа извлекать только новые сообщения с почтового сервера POP3 без необходимости извлекать все сообщения и переберите каждый из них, чтобы увидеть, если он новый.

Я попытался установить флаг, используя следующее:

$status = imap_setflag_full($inbox, $email_number, "\\Seen \\Flagged", ST_UID);

И используя это, чтобы получить:

$emails = imap_search($inbox,'UNSEEN');

0

Решение

Похоже, что способ работы POP3 делает его ужасным кандидатом на изучение PHP. Большинство клиентов удаляют сообщения с сервера после загрузки, и на сервере остаются только последние сообщения (в идеале одна машина будет извлекать данные с сервера POP, нет меток или статусов, которые могут быть получены несколькими устройствами)

К сожалению, если кто-то еще не решит присоединиться, похоже, что единственный способ быстро получить новые сообщения без циклического перебора всех старых сообщений — это удалите сообщение с сервера после загрузки.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]