Страница 2 из 2

Re: IMAP настройка

Добавлено: 25 май 2022, 09:55
alexinc
alex_mx писал(а): 19 май 2022, 09:14
alexinc писал(а): 18 май 2022, 18:01 Мне кажется, на этом строиться забор писем. Письма забираются с флагом UNSEEN(не просмотренные), а не по базе UUID. Если флаг не убирать, то все будет по кругу. Можно попробовать поиграться с флагами (viewtopic.php?p=24677#p24677), но не уверен что результат будет.
Поставил такой флаг: $body = imap_body($conn, $i, FT_PEEK); работает, почта забирается и на клиенте не прочитанные, если костыль в настройку перенести будет отлично!
После части эксперементов на Яндексе получилось следующее:
Ставим флаг RECENT, меняем строку на $body = imap_body($conn, $i, FT_PEEK);
Ходит как нужно - в CRM падает, в яндексе отметки о прочтении нет. Все счастливы.
Следующий шаг - сохранение по IMAP в "Отправленные" в яндексе, есть метод imap_append, но там нужно править отправку по smtp, внедрять свой код. Если грубо - то в функцию send_mail после mail->send() нужно дописать часть кода на сохранения сообщения через imap_append. Но грубо не хочется. Изучаю возможность через плагины это сделать.

Re: IMAP настройка

Добавлено: 25 май 2022, 15:50
alex_mx
А как себя ведут письма, которые ещё не попали в CRM, но почтовым клиентом уже прочитаны? Сегодня с таким столкнулся, CRM не успела забрать, менеджер отметил письмо прочитанным, и даже пометив обратно непрочитанным письмо не забирается.

Re: IMAP настройка

Добавлено: 26 май 2022, 10:23
alexinc
alex_mx писал(а): 25 май 2022, 15:50 А как себя ведут письма, которые ещё не попали в CRM, но почтовым клиентом уже прочитаны? Сегодня с таким столкнулся, CRM не успела забрать, менеджер отметил письмо прочитанным, и даже пометив обратно непрочитанным письмо не забирается.
Собственно, так себя и ведут: кто первым встал, того и тапки. Здесь реализован не чистый imap (как, например, в suitecrm), а некое подобие связки imap/pop3. Забирается по imap, по флагам. Потом письмо кладется полностью в базу. Все. Если письма на сервере потеряли флаг - то для CRM они потеряны. Сделано это, судя по всему для снижения нагрузки на сервер. Выходом может быть только учащение проверки ящиков, но это тоже дело такое, шаткое. В Linux по cron может быть проверка не чаще 1 раза в 1 минуту. Нужно писать скрипт, который разобьет минуту на 4 15 секундных отрезка с проверкой запущенных процессов. Тогда будет быстрее, но опять же - проверяется 1 ящик за раз. То есть при наличии 50 ящиков - тоже так себе решение.