Задать вопрос
Serg89
@Serg89
Изучаю. Читаю.

Почему нельзя получить почту через imap с флагом NEW?

Суть проблемы в том, что я не могу получить список писем по нужному мне фильтру SUBJECT + NEW. В случае голого SUBJECT imap_search возвращает все письма кроме последнего пришедшего. При чем не работают оба фильтра SUBJECT + NEW и SUBJECT + UNSEEN.

$mbox = imap_open("{imap.yandex.ru:993/imap/ssl}INBOX", "my@mail.ru", "password");
$mails = imap_search($mbox, 'ALL UNSEEN FROM from@mail.ru SUBJECT "Zdes kusok temy latinicei i s probelami"');
/*Здесь код обработки полученного mails*/
imap_close($mbox);


Вот в таком виде сейчас находится получение писем. Смена Unseen на new не срабатывает. $mails выдает false.
  • Вопрос задан
  • 1390 просмотров
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 3
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
попробуйте без флага ALL
Ответ написан
dmitriylanets
@dmitriylanets
веб-разработчик
1. попробуйте получить письма с простым запросом SINCE 20-12-2015 FROM "from@mail.ru"
далее расширяйте в случае успеха
2. если $mails == false выведите imap_last_error()
3. если ошибка возникает только когда работает через cron то залогируйте важные участки кода

if(!$mbox = imap_open("{imap.yandex.ru:993/imap/ssl}INBOX", "my@mail.ru", "password")){
$log->add('error connection'. imap_last_error());
}
if(!$mails = imap_search($mbox, 'ALL UNSEEN FROM from@mail.ru SUBJECT "Zdes kusok temy latinicei i s probelami"')){
$log->add('error'. imap_last_error());
}

$log->add('success:'.count($mails));

/*Здесь код обработки полученного mails*/
imap_close($mbox);
Ответ написан
shumaher86
@shumaher86
вот тут пишут, что по FROM искать нельзя.
тоже сейчас столкнулся. пока настроил фильтрами пересылку на Яндекс, а искать буду уже оттуда. правда письмо приходит через полчаса почему-то, так что способ хреновый
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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