Существуют технологии, позволяющие вам сконфигурировать ваш сервер и Javascript, чтобы в сущности разрешить "обратный AJAX" (посмотрите на Google / Wikipedia "комета" или "обратный AJAX"). Тем не менее, это не невероятно просто, и для того, что вы делаете, вероятно, не стоит всей работы, которая уходит на его настройку.
Похоже, у вас есть очень распространенная проблема, которая заключается в том, что вы запускаете несколько запросов AJAX, и каждый из них должен выполнить небольшую работу, которую реально только один из них нужно выполнить один раз, и тогда вы будь хорошим.
Я не работаю в PHP, но если возможно сохранить возвращаемое значение imap_open или какие-либо побочные эффекты, возникающие в запросах, вам следует попытаться сделать это, а затем просто повторно использовать этот сохраненный ресурс.
Какой-то псевдокод:
if (!persisted_resource) {
persisted_resource = imap_open()
}
persisted_resource.use()....
где persisted_resource должен быть некоторой переменной, хранящейся в области сеанса, области приложения или в любом другом доступном PHP, который дольше живет, чем запрос.
Тогда вы можете либо каждый запрос проверить эту переменную, так что только один запрос должен вызвать imap_open, или вы можете инициализировать его во время загрузки страницы. Надеюсь, это полезно.