У меня есть одно приложение, в котором люди могут настраивать там учетную запись электронной почты через IMAP и выполнять такие операции, как чтение электронной почты, удаление, перемещение и т. Д. Я столкнулся с проблемой, что при удалении одного электронное письмо электронной почты удаляется. После отладки я обнаружил, что 2 пользователя настроили одну учетную запись электронной почты, и они удаляют письма из двух разных браузеров без обновления страницы.php: номер последовательности IMAP-сообщений изменяется после удаления одного сообщения электронной почты
Фактически после удаления одного сообщения msgno, возвращаемого imap_fetch_overview, изменяется, но на другой странице все еще открыта старая msgno, а при удалении этого сообщения удаляется другая почта.
Проверить msgno before and after delete
В приведенном выше примере после удаления почты, имеющего предмет "тест 4", msgno из "тест 6", "тест 7", "8 Тест" получает изменилось. Теперь, если какой-либо другой пользователь, который ранее открыл почту, пытается удалить почту с темой «test 7», фактически удалит почту с темой «test 8».
Для удаления электронной почты я использую функцию imap_delete, которая принимает параметр msgno в качестве параметра. Пожалуйста, помогите справиться с такой проблемой или есть способ получить уникальный идентификатор для каждой почты, которая не изменится и с использованием этого идентификатора. Я также могу выполнять операции IMAP, такие как удаление, перемещение и т. Д.
Вместо этого используйте уникальные идентификаторы. Я думаю, что все функции PHP принимают флаг (например, FT_UID?), Чтобы использовать UID вместо порядковых номеров. – Max
Спасибо @Max, он работает –
Я добавлю в качестве ответа. – Max