Добрый день, разрабатываю один сервис и имеется требование разместить на нем почтовый клиент, чтобы пользователи могли читать и писать письма с данного сервиса.
Прочитать заголовки и тела писем получилось, даже получилось их нормально раскодировать, но есть одна проблема. Очень долго все это происходит (до 10-15 секунд).
Использую набор штатных функций PHP IMAP
Могу предположить, что данное время тратится на функцию imap_open().
А теперь сам вопрос, как делаются нормальные почтовики: напрямую при каждом запросе к письму подключаются к почтовому серверу, читают оттуда данные и закрывают соединение, или же один раз читают данные и сохраняют их в базу данных и только изредка в фоновом режиме проверяют не пришло ли новое письмо?
Пример как я читаю тело письма:
$mbox = imap_open("{" . $inputData['domain'] . ":143}INBOX",
$inputData['login'],
$inputData['password']);
$body = imap_fetchbody($mbox,$msgno,1);
$body = iconv("cp1251", "utf-8", $body);
imap_close($mbox);
return $body;