company_banner

POP3 и IMAP: история почтовых протоколов и сбор писем по IMAP в Яндекс.Почте

    (посвящается Марку Криспину 19.07.1956 — 28.12.2012)

    Некоторое время назад в Яндекс.Почте появились сборщики писем по IMAP. В этом посте мы немного расскажем о двух важных почтовых протоколах — POP3 и IMAP — и о том, как они появились и используются в современных почтовых системах. Не всегда это так просто и очевидно, как ожидаешь от технологий, развивающихся уже почти 30 лет.

    Начнём наш экскурс в историю протоколов, через которые вы каждый день получаете свою сотню писем.




    Когда общаешься в Сети много месяцев и лет, обрастаешь множеством писем, а это сотни мегабайт и гигабайт переписки и файлов. Часто это не просто полезные файлы, по ним можно вспомнить и восстановить вехи жизни. Эти данные бывают ценнее чем содержимое локального диска компьютера.

    Иногда встаёт задача перейти на новую и более удобную почтовую систему, но мешают накопленные архивы писем. Бросить их на прежнем месте? Жалко. Пароли забываются. Бывает, утрачиваются номера мобильных и email-адреса, введённые для их восстановления. Однажды можно потерять архивы навсегда. Скачать на локальный жесткий диск? Переписать на болванку или флешку? Но они ненадёжны: ломаются, теряются, портятся.

    Самое логичное решение — импортировать архив почты в новый ящик. Но недостаточно это сделать один раз, ведь в старый ящик могут продолжать приходить важные письма. Можно настроить безусловное перенаправление всей входящей почты на другой адрес, и с технической точки зрения это — самый предпочтительный вариант. Но мы не роботы, и далеко не всегда технически экономное решение удобно использовать.

    Долгое время единственным способом переноса архива почты между почтовыми системами с постоянной фоновой синхронизацией новых писем был протокол POP3. Возможность собирать почту с внешних POP3-серверов реализована везде и хорошо. Во всяком случае, настолько хорошо, насколько это позволяет протокол, а он имеет массу неприятных ограничений.

    POP3 ведёт свою историю с 1984 года, когда одна из сотрудниц Института Информатики в составе Университета Южной Калифорнии, Джойс Рейнольдс, опубликовала RFC 918 — предложение стандартного протокола для получения электронной почты (POP — Post Office Protocol). Через 4 года появилась третья редакция протокола POP, а текущая, современная версия стандарта на POP3 опубликована весной 1996 года, почти 17 лет назад.

    Важным принципом POP3 является оптимизация под короткие подключения к почтовому серверу в условиях дорогой и медленной связи. Изначально в рамках каждого подключения предполагалось скачивание всех писем из ящика на локальный диск, а затем очистка всего содержимого ящика. Точно так же работает ваш почтовый ящик для писем и газет в подъезде многоквартирного дома. В первой версии POP даже не было команд для чтения отдельных писем, только для полной выгрузки всего.

    Сейчас уже сложно представить, что электронные письма не хранили на серверах. Их перекачивали на локальный компьютер при первой возможности и читали, сортировали по адресатам, темам и важности локально.

    Интересно, что в протоколе POP2 была предусмотрена возможность работы с несколькими папками на сервере, но она оказалась невостребована, да и сам протокол распространения не получил. Поэтому в POP3 команду FOLD, которая реализовала эту возможность, убрали. POP2 обогнал время.

    Сейчас в POP3 нет возможности скачивать с сервера структуру папок, только «плоский» список писем, состоящий, как правило, либо из входящих писем, либо из объединения пользовательских папок. Невозможно учитывать флажки прочтённости и важности. Несмотря на эти ограничения, протокол всё ещё широко используется, в основном из-за своей простоты и очень широкой поддержки в любых устройствах.

    Было много попыток улучшить POP3, но ни одна из них не достигла такого успеха, как протокол IMAP, почти параллельно разивавшийся с 1985 года. История IMAP тоже весьма интересна. Например, первая реализация была сделана на Lisp-е, и его наследие навсегда осталось в протоколе в виде S-выражений, которыми кодируются сложные ответы сервера, такие как BODYSTRUCTURE.

    Автор и идеолог IMAP Марк Криспин заложил в него принцип постоянного хранения писем на почтовом сервере. IMAP оказался одним из ранних «облачных» протоколов Интернета, рассчитанных на то, что локальное хранилище на персональном компьютере ненадёжно. Кроме того, персональных компьютеров и других терминалов для работы с почтой у человека может быть несколько — базовые вещи для нас теперешних.

    Последняя версия IMAP — 4rev1 — описана в документе RFC 3501, увидевшем свет в 2003 году. Несмотря на кажущийся возраст, протокол получился живым благодаря предусмотренному на ранних этапах механизму расширений. Этот механизм, конечно, тоже не без недостатков, но тем не менее, он позволил различным людям выпустить более пятидесяти публичных расширений, многие из которых были разработаны совсем недавно и нашли широкое применение.

    Современная почтовая система без поддержки доступа по IMAP — нонсенс. На протяжении нескольких лет Яндекс.Почта поддерживает IMAP в качестве сервера для работы из таких популярных клиентских программ, как Outlook, Thunderbird, Apple Mail, а также многочисленных мобильных клиентов. Кстати, именно благодаря смартфонам IMAP получил вторую волну развития. Если на персональных компьютерах уже довольно давно подавляющее большинство пользователей сделали выбор в пользу веб-интерфейса к своей почте, то с мобильными устройствами ситуация совсем не такая. Быстрые и красивые IMAP-клиенты, например в iOS, заставляют пересматривать подход к IMAP как к выбору исключительно профессиональных и «продвинутых» пользователей.

    Недавно в Яндекс.Почте появилась и функция IMAP-клиента — сборщика почты с внешних серверов по IMAP — в дополнение к POP3-сборщику.

    Функция не требует практически никакой настройки и рассчитана на фоновую работу после первого включения. При сборе почты через IMAP из-за описанных выше особенностей работы протокола в вашем почтовом ящике вы увидите ту структуру папок, к которой привыкли, когда пользовались предыдущей почтовой системой. Все прочтённые письма останутся прочтёнными, а непрочитанные — непрочитанными.



    Включить сбор с папками в Яндекс.Почте можно со всех почтовых систем, поддерживающих протокол IMAP. Протокол непростой, у каждой реализации IMAP-сервера есть свои закидоны, и нам было важно в первую очередь обработать самый массовый вариант перехода со старой почты на новую.

    По-прежнему кроме самих писем импортируются контакты из адресных книг самых распространённых почтовых сервисов.

    Протокол IMAP заметно сложнее чем POP3 и просто по набору возможностей и команд, и по некоторых базовым принципам функционирования. Например, в IMAP используется тегирование команд клиента и ответов сервера на эти команды, что позволяет серверу отвечать на команды в произвольном порядке.

    Каждая команда должна быть предварена некоторым идентификатором — тегом, который затем будет использован сервером при генерации ответа на эту команду. Это позволяет «беседе» клиента с сервером быть абсолютно асинхронной — сервер вправе отвечать на команды клиента в любом порядке, так как теги позволяют однозначно сопоставить ответ ранее поданной команде. Более того, сервер может выполнять такие команды одновременно, ускоряя скорость работы с почтой, и Яндекс.Почта умеет это использовать. Одновременно это требует особого подхода к программированию как клиента, так и сервера. Если вам в этом месте вспомнился механизм sequence numbers в TCP, то запишите себе +1 в geek cred :)

    Для реализации IMAP-сборщика внутри Яндекс.Почты мы использовали наш асинхронный фреймворк для написания любых высокопроизводительных сетевых сервисов, который называется yplatform. Пока его исходный код закрыт, хотя мы рассматриваем возможность опубликовать его. Следите за новостями.

    Переходите на Яндекс.Почту, настраивайте сборщик по IMAP — и вы всегда сможете найти любое старое письмо. Уж что-что, а искать Яндекс умеет.
    Яндекс
    Как мы делаем Яндекс

    Comments 68

      +3
      И тут главный вопрос — все ли почтовые сервера поддерживают IMAP?)
        +2
        live.com — нет. :( И это сильно угнетает.
          –5
          Неужели кто-то ещё верит в то, что сервисы и продукты M$ могут существовать вне своей замкнутой инфраструктуры? Это ж майкрософт, им на всех наплевать и что-то работающее зачастую они могут сделать только на проприетарных костылях. Хотите эффективно работать — просто по-возможности используйте как можно меньше продуктов M$. В данном случае возможность есть. live.com — это явно не лучшая почта.
            +2
            Увы, других нет. :( Мне нужна была почта для собственного домена. Такое делал Google раньше, но сделал платную версию с ноября, кажется. Поэтому пришлось переходить на Live.com. К сожалению, других зарубежных систем с такой возможностью просто не знаю. :( Если подскажите, буду очень благодарен!
              0
              Мне вот очень интересно: зачем нужна почта без IMAP? Или вы смартфонами вообще не пользуетесь? live.com — это недоразумение, а не почта. Выбирать ЭТО только по принципу наличия бесплатной почты для домена (которая безусловно станет платной если, упаси Боже, сервис «взлетит») — абсурд.

              Касательно почты для домена — чем яндекс-то плох? Если для себя — поставьте просто пересылку на личный ящик гмыла. Хочется безопасности (вдруг яндекс что прочитает!) — Postfix на личном мини-сервачке настраивается на пересылку за 10 минут. И вообще — если вам нужна корпоративная почта на организацию больше, чем из 5-10 человек — то без вариантов нужно разворачивать свой сервер. Хотя бы в виде релея. И да, M$ и безопасность — понятия несовместимые.
                +1
                Яндекс — хорош. Но у нас проект в США, и нужна система, понятная американским сотрудникам, на нативном английском языке. :) Поэтому выбор и был ограничен google и MS.
                  –1
                  Тем более. В США явно смартфоны/планшеты на каждом шагу. Хотя если вы ради почты готовы всем вашим пользователям купить по нокии, винтаблетке, ещё офис365 прикупить — тогда да, проблем с вашей почтой не возникнет) Хотя через годик-другой надо будет всё заново покупать, зато бесплатная почта для доменов))
                    +7
                    Я просто оставлю это здесь: mail.yandex.com :) Нативнее не бывает
                      +1
                      Сейчас уже поздно. Все уже работает. Только ради IMAP переезжать смысла нет.
                        –1
                        Сочувствую вашим пользователям) Хотя сам сейчас с GApps мигрирую, и у Google не всё шикарно бывает. Видимо, на яндекс.
                    0
                    У вас какие-то странные представления…
                    Смартфоны нужны только чтобы почту читать? Я на своём этого ещё ни разу не делал. Неудобно. Проще придти на работу/домой и нормально всё прочесть.
                    live.com предоставляет все возможности для чтения и написания писем. Плюс приятные плюшки (типа «бесплатной почта для собственного домена»).
                    Особенно смешно выглядят предложения поставить свой мини-сервак с postfix-ом…
                    MS достаточно серьёзно относится к безопасности. Не надо нагнетать.
                      –2
                      Очень зря. Все, чья деятельность зависит от почтовой корреспонденции, рано или поздно начинают пользоваться смартфонами) Это экономит кучу времени. Может, у вас всегда с собой ноутбук и беспроводной интернет, и вам удобно это доставать каждый раз, когда вам нужно на очередной встрече/посиделке посмотреть что-то в почте, но думается, что скорее вы просто не используете почту достаточно интенсивно.

                      А live.com… Ну не смешите. Как даже автор статьи заметил — не поддерживать IMAP — это нонсенс. Всё равно, что машина с кожаным салоном и прочими плюшками, но без двигателя. Я даже и не знал, если честно, что у MS настолько всё запущено. Мы ж на хабре, казалось бы очевидные вещи.
                      • UFO just landed and posted this here
              0
              Конечно не все.
              Но лидирующие — безусловно.
              +4
              Насколько правда, что Activesync лучше, чем IMAP? В чём принципиальные различия между этими двумя? В каком состоянии находится push через IMAP?
                +2
                Activesync включает в себя многие другие типы данных кроме почты. В этом главное преимущество.
                Недостаток же в том, что несмотря на то, что в последнее время Microsoft открыла спецификации, по-прежнему есть преграды к его широкому использованию. В частности, многие его части густо покрыты патентами, и для реализации клиента или сервера требуется лицензирование этих патентов.

                push через IMAP по-прежнему делают через команду IDLE. это неэффективный для мобильного использования способ, так как требуется держать постоянное TCP-соединение (и часто не одно).
                  +2
                  push через IMAP по-прежнему делают через команду IDLE. это неэффективный для мобильного использования способ, так как требуется держать постоянное TCP-соединение (и часто не одно).

                  Есть NOTIFY rfc5465, в пределах 1 TCP сессии уведомления на все ящики. Так у и ActiveSync'a тоже сессия всегда была одна для пуша.
                    +1
                    А знаете клиенты с поддержкой RFC 5465?

                    Верно, про push я просто отвечал на 3 вопрос, где не упоминался ActiveSync. Интересно, кстати, как сделан push на новых Windows Phone. Я не смотрел ещё. Возможно, какое-то расширение ActiveSync.
                      +1
                      k9mail под андроид, должен поддерживать NOTIFY. Десктопных клиентов нет мне известных. Из серверов dovecot 2.2
                +7
                А вот про Лисп и S-выражения не знал:) Активно работаю с IMAP-протоколом, и вот ведь не задумывался откуда взялся формат записи bodystructure.
                  –16
                  Не знаю кому как, я лично не люблю IMAP. Гори он красным пламенем. Лучше доброго, старого и лампового POP3 — для меня ничего нет.
                  • UFO just landed and posted this here
                      0
                      POP3 в обозримом будущем никуда не денется :)
                        +1
                        Приведу пример: знаю человека, который однажды, при мизерном потреблении интернета в офисе (у него вся работа через почту, серфить просто так и в соцсетях сидеть — не любит), получил счет за трафик, раз в 5 больше обычной своей нормы. Трафик в БЦ, где он работает, весьма недешев, посему счет оказался замечен. начал разбираться, и узнал, что виной всему галочка «хранить почту 15 дней».

                        Грубо — у него почта проверялась каждые 5 минут (а может, и чаще. не помню уже — но по работе это было нужно). Почты за день довольно много, хотя письма и мелкие. Раз в 5 минут он получал (читай — «качал») во-о-о-о-о-от такой список писем в ящике, скачивал (если были) из него свежие письма, и ждал еще 5 минут. В сумме эти вот постоянные приемы списка почты создали трафик сильно больший, чем сама почта.

                        IMAP бы его сильно спас, сами понимаете. У IMAP, как у протокола, конечно, есть свои «моменты» (больше частью не только из-за протокола, а из-за клиентов, которые каждый хочет быть «прямее всех прямых»), но все же в POP3, простите, «ламповости» тоже не сильно много видно. Вот что он дубовый, это правда, что его понять проще, и более-менее освоить его можно быстро — тоже правда. От его простоты клиенты его использовать умеют более-менее одинаково, это тоже правда. Но… Вы бы его сказали, что топор на фоне бензопилы «ламповее» выглядит, мол, с пилой одна морока! :)
                        –6
                        Оп-па, спасибо — неужели у mail.ru IMAP заработал?
                          +10
                          Какой крутой и интересный хабраблог у Яндекса, спасибо!
                            +2
                            Кстати, почему у вас досих пор есть проблема с удалением писем по IMAP? Особенность протокола, или ваших программистов? Ведь проблема не новая. Я однажды попал в очень неловкую ситуацию когда по IMAP-у удалял неугодные письма надеясь что никто их не увидит, но в веб интерфейе все удаленные письма находились во входящих.
                              +1
                              По вашей ссылке в комментарии номер 9 Стефан Танурков (кстати, один из старейших сотрудников RIT Labs, первый автор знаменитого DOS Navigator) описал, почему The Bat! работает так, а не иначе.

                              Яндекс.Почта выполняет требования стандарта в отношении флага \Deleted и команд EXPUNGE/CLOSE.
                                0
                                Это просто первая ссылка из поиска. Та же ситуация на всех IMAP клиентах. Thunderbird iphone mail клац.
                                  0
                                  Ну правда, нет смысла разбирать каждую ссылку.

                                  Thunderbird и iOS Mail.app точно умеют вычищать удалённые сообщения. А у вас в каком клиенте проблема видна?
                                    0
                                    Но проблема есть 100%. У меня лично как раз на Thunderbird и iOS Mail.app точно есть. Замечу что с yahoo и gmail все нормально, то есть проблема не в IMAP клиенте.
                                    Несколько месяцев назад в каком-то из блогов яндекса нашел ответ что проблема есть, и пока что программисты ничего предпринять не могут, что это особенность протокола IMAP, и что другие сервисы где удаление работает нормально — используют определенные хаки.
                                    Объясню подробней:
                                    Если письмо удалить через IMAP клиент — оно удалится из папки «Входящие» на клиенте и появится в папке «Удаленные». Но если после этого зайти через веб-интерфейс, то письмо есть и в «Входящих» и в «Удаленных».
                                      0
                                      Мы готовы разобрать ваш конкретный случай. Будем ждать письма в техподдержку.
                              –1
                              > искать Яндекс умеет.

                              А почта при этом на предмет подбора релевантной рекламы сканируется и локальная, и удаленная?
                                +2
                                Почта для показа контекстной рекламы не анализируется.
                                  0
                                  Хорошо, если так. Своими глазами наблюдал обратное (по крайней мере, других объяснений трудно было найти): приходит спам, начинаю читать — все, сутки-другие потом, даже на других страницах и сайтах вижу контекстную рекламу на эту тему.

                                  Может, конечно, происходил анализ того, что я читаю (т.е. почта не сканировалась, но анализировалось читаемое?), но ощущение весьма не очень осталось.

                                  Ну что же, неплохой аргумент еще раз в сторону вашей почты как серьезного ящика посмотреть.

                                  Вам бы еще сделать сервера в т.ч. и на североамериканском континенте (а то оттуда ходить в Москву за почтой не шустро получается) — цены б не было Я-почте, как по моим меркам :)
                                    +2
                                    Я на всякий случай еще раз повторюсь, чтобы не было разночтений.
                                    В Яндекс.Почте не анализируется ни содержание корреспонденции, ни поведение пользователя в Почте для таргетирования контекстной рекламы (директа, проще говоря).

                                    Вы стали свидетелем совпадения.

                                    Позвольте поинтересоваться, зачем Вам сервер в Америке?
                                      0
                                      Вы знаете, после ухода Гугла с рынка игроков бесплатного хостинга почтовых доменов Яндекс вполне неплохо (очень, очень неплохо!) выглядит в этой роли, но если доменом на pdd (или почтой на вашем домене) пользоваться в России. Если же человек из Штатов/Канады заведет у вас ящик, то на веб-морду (равно как по IMAP4/POP3) он будет ходить через полмира, если я правильно понимаю — что сделает использование сервиса Яндекса несколько «задумчивым».

                                      Будь у вас площадка в Штатах с теми же сервисами, что в России, то, даже с фиксированной привязкой ящиков к той или иной площадке, мне кажется, вы бы получили достаточно много новых клиентов.

                                      Правда, я не в курсе, есть ли в таких «далеких» клиентах смысл для вас… Мне бы это пригодилось, но статистикой «за всех», конечно. не владею.
                                0
                                Почта для показа контекстной рекламы не анализируется.
                                  0
                                  Расскажите в общих чертах как Вы видите развитие протокола электронной почты в будущем. Как, например, победить проблему спама? Или она будет преследовать человечество еще несколько десятилетий?
                                    0
                                    По поводу первого вопроса — это тема для большой статьи если не книги. Серьёзно. Как-нибудь надо собраться с силами, подкопить время и написать. Но не сейчас.

                                    Давайте второй обсудим. У вас сейчас есть проблема спама на Яндекс.Почте?
                                    +2
                                    Yandex сделал великое дело. Есть провайдеры, которые поддерживают IMAP, но не поддерживают POP3 and email forwаrding. Например, Yahoo Mail в своем бесплатном варианте. Теперь, с помощью Яндекса, решаются четыре проблемы:

                                    1. По-человечески делать бэкап почты (а не ручками, создавая дополнительный аккаунт в оффлайновом клиенте).

                                    2. Решается проблема неактивного аккаунта (есть еще такие Yahoo-подобные провайдеры с коротким expiration без логина и не поддерживающие POP3, не заходил ххх дней — все, конец ящику). Теперь Yandex спокойно будет логиниться в IMAP only email accounts.

                                    3. По сути, решается проблема email forwarding-a с помощью фильтров Яндекса.
                                    4. Oтносительно безболезненно можно делать migration с IMAP only email accounts (Yahoo в первую очередь).
                                      0
                                      Спасибо за добрые слова.

                                      А поясните 3 пункт, если не сложно, пожалуйста.
                                        0
                                        «Высасываем» почту из IMAP-ящика. В фильтрах Яндекса прописываем «если почта послана на xxxxx@yahoo.com, то сделать переадресацию на yyyyyyy@<куда-нибудь>.ru „
                                      0
                                      Не в обиду сказано будет.
                                      Яндекс почта мне не нравится из-за того что в Современной теме нельзя отключить группировку писем
                                      (все время цепочка, что очень порой вырубает)…
                                        0
                                        Расскажите, пожалуйста, что именно Вам не нравится в группировке писем? Дело в том, что трёхпанельный интерфейс изначально задумывался с рассчётом на то, что в третьей части экрана можно будет чистать письма как «ленту» всей переписки — так быстрее и удобнее.
                                          0
                                          Я использую для тестирования почтовый ящик.
                                          Шлю с сайта сообщения на этот ящик.
                                          И за все время использования the bat, outlook,mail.ru Я привык что новые письма сверху, а старые снизу, причем я ясно вижу что оно уже прочитано так как не выделено Жирным.

                                          В итоге получается что я сразу не вижу пришло это письмо только ЧТО.
                                          Таким образом мне приходится удалять прочитанные письма а уже потом отправлять ТЕСТОВОЕ письмо.

                                          И в итоге получается мне придется поломать свою привычку.
                                          Грустно другое, я то думал что группировку можно отключить (АН НЕТ).

                                          выход только либо удаление либо разворачивание цепочки письма (но при обновлении цепочка опять сворачивается )…

                                          Еще бесит что когда я выбираю письмо и нажимаю Delete, письмо не удаляется, вместо этого я должен нажимать красный крестик на третей панели. Получается так что хотя фейс был взят от Outlooka сама нативность десктопного приложения не поддерживается
                                          (Видимо Веб так и останется псевдо десктопным приложеним)
                                            0
                                            Я привык что новые письма сверху, а старые снизу, причем я ясно вижу что оно уже прочитано так как не выделено Жирным.
                                            В итоге получается что я сразу не вижу пришло это письмо только ЧТО.

                                            Всё именно так работает в Яндекс.Почте: новые письма появляются вверху, старые внизу. При клике на последнее письмо Вы помимо самого этого письма видите ещё и все предыдущие письма единой лентой, но само-то письмо никуа не теряется, оно точно так же показывается вверху.
                                            Более того, на список писем вообще можно не обращать внимание (развёрнуто там что-то или нет), ведь справа (или внизу) показываются все письма группы — не нужно открывать каждое письмо по отдельности.

                                            Про выделение проблема понятна, решить её, к сожалению, не так легко, чтобы не привести к случайным удалениям. Находясь на каком-то письме, попробуйте сперва нажать Space, а потом только Delete.
                                        0
                                        Кто знает, как дела у Outlook 2013 с IMAP?
                                        У 2007 и предыдущих с этим дикое непотребство:

                                        1) Копирование в папку Sent исходящих писем по дефолту не работает, нужно настраивать отдельно.
                                        2) Удаление писем с сервера происходит ужасно криво: письма перечеркиваются, но не удаляются пока не поставишь галку «purge deleted messages» (как-то так называется). Удаление происходит не в «Trash», а вообще совсем.
                                        3) Нет поддержки namespaces за пределами INBOX: о шаренных папках в случае почтового сервера Courier можно забыть.
                                        4) Работает ну очень МЕДЛЕННО даже на топовых компах, даже на SSD. В несколько раз медленней pop3 и на несколько порядков, чем Thunderbird. А синхронизация свежеустановленного Outlook по imap происходит медленней, чем выгрузка всех писем по IMAP.

                                        В общем, проще использовать POP3, чем терпеть всё это.

                                        Кто знает как с этим дела в последнем Outlook?
                                          0
                                          К сожалению, надо искать специалиста по Outlook 2013. Большинство указанных Вами проблем конфигурационные, должны решаться специфичной настройкой клиента.

                                          По 4-му пункту: есть ли у вас конкретные жалобы на скорость работы Outlook 2013 именно с Яндекс.Почтой? В этом случае можно было бы разобрать проблему более подробно, с привлечением наших серверных логов.
                                          0
                                          Cовременная почтовая система без поддержки доступа по IMAP — mail.ru
                                            0
                                            Правда-правда? А у меня работает. Через одно место: соединение рвётся, мгновенных оповещений о новых письмах нет, но в базовых вещах работает как и POP3.
                                              0
                                              Уже почти год как ввели поддержку pcnews.ru/news/mail-ru-imap-group-ios-macos-windows-mac-android-393393.html
                                                0
                                                Ну для галочки да. то что по нему ничего нельзя сделать — вот что печально.
                                                  0
                                                  Ну да, им же как бы стыдно вообще без IMAP, а на деле нафига — пусть хомячки через веб лазиют, так ведь больше рекламы можно всучить…
                                              0
                                              А как именно вы достаёте почту через IMAP? Какие папки смотрите? Как проверяете наличие новых писем? Копируете ли структуру папок при доставлении письма? Используете ли IMAP internal date для создания локального письма? Есть ли специальные сценарии работы со, скажем, gmail, где поддержка IMAP весьма экстравагантна?
                                                0
                                                1) FETCH, как ни странно :)
                                                2) Все, но есть особенности для разных провайдеров.
                                                3) Сравнением списков.
                                                4) Да.
                                                5) Там сложная схема, которая пытается учесть некоторые ошибки внешних почтовых серверов и угадать реальную дату доставки письма в оригинальный ящик.
                                                6) Да. Все IMAP-провайдеры имеют особенности, не только gmail (хотя у gmail эти особенности конечно самые необычные).
                                                  0
                                                  Спасибо за ответ. С гмейлом мы натыкались на странные моменты типа делаешь FETCH списка писем, но данные приходят порциями по 100 штук, пауза между блоками в одну секунду, если в папке несколько тысяч писем.

                                                  А вы на своей стороне запоминаете, какие именно письма уже получили? С тем же гмейлом натыкались на то, что он для одних и тех же писем сообщал разные UID в разных сессиях.

                                                  А что письма с флагом \Deleted загружаете?
                                                    0
                                                    Да, у gmail точно есть рейтлимитинг на имапе. Замечали, что появляется оттормаживание, но не сразу.

                                                    Про разные UID в разных сессиях — а UID VALIDITY при этом меняется?

                                                    Вопрос про \Deleted не понял, пардон.
                                                      0
                                                      Про \Deleted я не так сформулировал, сорри, хотел сказать вот что: Вы письма с установленным флагом \Deleted загружаете?

                                                      UIDVALIDITY не меняется, в том-то и проблема.
                                                        0
                                                        Загружаем, а вот флаг пока не ставим. Баг.

                                                        Нет, такого пока не замечали. Будем внимательно смотреть, спасибо.
                                                0
                                                Похоже для писем, полученных по imap как минимум с gmail не применяются правила обработки почты.
                                                Те, есть правило: «если письмо от x@y класть письмо в папку AAA»
                                                Если письмо направлено напрямую на addr@ya.ru, то фильтр отрабатывает — письмо в папке
                                                Если письмо направлено на addr@gmail.com и яндекс его получил после по imap, то оно остается во входящих.

                                                Это делает обработку основанную на правилах непригодной к использованию.
                                                  –1
                                                  Верно, правила применяются только к письмам, которые приходят в ящик по SMTP.
                                                    0
                                                    А как Вы считаете, что должно быть приоритетнее: сортировка по папкам, настроенная пользователем на исходном ящике в Gmail, или правила на стороне Яндекс.Почты? И почему? Ведь письма там уже разложены по какой-то причине в свои нужные папки, и сборщик по IMAP специально сделан, чтобы сохранить структуру этих папок и их содержимое. Почему в этой логике нужно делать исключения?
                                                      0
                                                      Я бы предоставил возможность выбора пользователю при настройке импорта почты.

                                                      В случае если сделать возможными оба варианта сложно, я бы предпочел такую логику: если человек настраивает у Вас импорт, то ожидаемо что у него старая почта рассована уже по папкам(правилами или руками) и ее нужно скачать сохранив стуктуру, однако новую почту он будет читать уже с яндекса, и логично чтобы он на яндексе один раз настроил правила, а не дублировал их кучу раз у разных сервисов.
                                                    0
                                                    Столкнулся с проблемой нескольких ящиков на gmail — когда некоторые нужные письма уходят в спам неосновного почтового ящика, они не пересылаются через pop3 (a IMAP для сбора с других своих ящиков в gmail не работает). Приходилось каждый раз перелогиниваться в gmail, что неудобно.
                                                    Решил настроить сбор в яндексе. Рекомендация для тех, кто тоже решит заняться подобным:
                                                    Помимо включения IMAP в ящике gmail, нужно перед настройкой сбора почты пройти по ссылке accounts.google.com/UnlockCaptcha и нажать «продолжить», иначе gmail будет считать яндекс злоумышленником и не даст ему зайти через imap.
                                                    Теперь все работает как надо — спам из ящиков gmail скачивается и сохраняется в папку «спам» на яндексе. Чтобы обычные письма приходили мгновенно, лучше еще помимо imap (который обновляется все-таки с некой периодичностью), настроить еще и пересылку новых писем из почты на gmail.
                                                      +2
                                                      Спустя полтора года говорю самому себе спасибо, что снова не пришлось искать как исправить ошибку соединения. Удивительно, что за столько времени в яндексе не прописали на видном месте как настроить сбор с самого популярного почтового сервиса.
                                                      0
                                                      Пытаюсь работать с ящиком в Яндексе через IMAP. Использую класс Zend_Mail_Storage_Imap.

                                                      После получения письма сбрасываю у него флаг \Seen и отправляю флаги обратно. При этом в веб-интерфейсе наблюдаю, что письмо сначала становиться непрочитанным, а потом снова само по себе становиться прочитанным. Таким образом не вижу возможности сделать письмо непрочитанным через IMAP.

                                                      Для сравнения флаг \Flagged работает таким же образом и корректно.

                                                      Формы, чтобы написать в поддержку Яндекс Почты я пока не нашел.

                                                      Благодарю, если кто-нибудь поможет.
                                                        0

                                                        Интересно, а когда Яндекс кроме IMAP сделать нормальную поддержку протокола POP3 (а не Яндекс.POP®), чтобы можно было удалять почту с сервера?
                                                        Только не нужно рассказывать сказки про ошибки в софте, RFC и мнимую полезность и безопасность...

                                                        Only users with full accounts can post comments. Log in, please.