v3shin
@v3shin
Веб-шаман

Как ускорить imap php?

Доброго времени суток.
Есть задача по обработке писем с почты; я использую свой класс-обвязку Imap:

$imap = new Imap([
    'server' => 'imap.yandex.ru',
    'port' => '993',
    'flags' => [
        'ssl' => true,
    ],
    'login' => $login,
    'password' => $password,
    'debug' => true, // дебаг внутри класса
], true);

$mails = $imap->searchUnseen();

foreach($mails as $mailNumber){
    $header = $imap->header($mailNumber);
    $structure = $imap->fetchstructure($mailNumber);
    ...
    break; // смотрим только одно письмо
}


Внутри класса никаких тяжелых обсчетов не производится. Пример функции Imap->searchUnseen():

public function search($criteria = 'ALL', $options = SE_FREE, $charset = null){
    if($this->debug) $this->updateDebugTime(); // сохраняем текущее время
    $ret = imap_search($this->conn, $criteria, $options, $charset);
    if($this->debug) $this->addDebug('search', compact('criteria', 'options', 'charset')); // сравниваем время с сохраненным и пишем в дебаг
    return $ret;
}
public function searchUnseen($options = SE_FREE, $charset = null){
    return $this->search('UNSEEN', $options, $charset);
}


Все работает, но на выходе получаю такую таблицу дебага, при том, что в ящике не более 500 писем:
a34c39bc7e144345a169f15a7de49074.png

Устанавливал так:
sudo apt-get install php5-imap
sudo php5enmod imap
sudo service apache2 restart

Версия php:
PHP 5.6.4-4ubuntu6.4 (cli) (built: Oct 28 2015 01:21:29)


Собственно, вопрос: как это ускорить?
Ну или как настроить логирование и продебажить соединение, потому что лог не пишется в /var/log/maillog?
Заранее спасибо.
  • Вопрос задан
  • 831 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы