Google хоронит расширение PHP IMAP

    Google сообщил владельцам G Suite аккаунтов о том, что с 15 февраля 2021 года авторизация в Gmail и других продуктах будет работать только через OAuth.

    Для IMAP-авторизации разработчикам предлагается использовать способ авторизации под названием SASL XOAUTH2. Но дело в том, что стандартное расширение PHP IMAP (а именно функция imap_open) не способно авторизовываться по предлагаемому Google алгоритму.

    Т.е. если в своих проектах вы используете стандартное расширение PHP IMAP, то скоро владельцы G Suite аккаунтов не смогут пользоваться вашим приложением. Также не исключено, что со временем не Google «позаботится» и о подключении к обычным Gmail-аккаунтам и не переведёт IMAP-авторизацию на OAuth.

    Для справки, на одном только GitHub сейчас более 121 тысячи скриптов и проектов, использующих стандартное расширение PHP IMAP.



    Какие могут быть варианты решения

    1. Сообщать в своём приложении, что оно несовместимо с Gmail-аккаунтами G Suite и предлагать завести почту на каком-нибудь другом сервисе.
    2. Переделать свои проекты на использование библиотеки Zend Mail, которая может авторизовываться по предлагаемому Google алгоритму. Другое дело, что мало кто будет рад переходу с быстрого нативного расширения PHP IMAP на стороннюю библиотеку.
    3. Попробовать уговорить Google принимать OAuth-токен в пароле IMAP: github.com/google/gmail-oauth2-tools/issues/18. Вполне, простое и логичное решение. Тогда все имеющиеся IMAP-библиотеки, включая PHP IMAP, продолжат функционировать и будут способны получать почту из Gmail, передавая OAuth-токен в пароле IMAP.


    UPD 1

    В комментариях и здесь поступило четвёртое предложение — дождаться, пока IMAP OAuth-авторизация будет реализована в расширении PHP IMAP. Но тут не всё так просто. Здесь и здесь обсуждение на PHP.net

    UPD 2

    Вариант добавления OAuth в расширение PHP IMAP отпадает: news-web.php.net/php.internals/107950

    UPD 3

    Желающих пригласили принять участие в разработке обёртки вокруг Zend Mail, поддерживающей XOUATH2 и предоставляющей набор функций аналогичный PHP IMAP: github.com/freescout-helpdesk/ximap

    Похожие публикации

    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 41

      +4
      До этого самого момента, email оставался практически единственным протоколом, который большие корпорации не смогли похоронить.
      И вот на тебе… Гугл пытается вынести email в свой загончик.
      Вероятно считают, что раз с мессенжерами получилось всех по разным протоколам расскидать, то и тут выйдет.
        +7

        Да причём тут "загончик"? Это ж не смена протокола, а всего лишь смена способа авторизации.


        2020й год уже скоро, сколько можно пароли третьим лицам передавать?

          +5
          Смотрите на вопрос шире.

          С xmpp было аналогично, всех данный протокол устраивал, но потом пользовательская база стала сильно прирастать у больших компаний, и каждый конкурент пришел к выводу, что надо огораживаться, что бы юзеры не утекали. И внезапно xmpp (общий для всех) объявили не безопасным, устаревшим и не поддерживающим нужного набора эмодзи и прочих стикеров. И каждый запили свою версию мессенжера, максимально не совместимого с конкурентами.

          Так и тут может случится.
          Сначала отменять авторизацию через imap.
          Потом разрешат вход только через приложение gmail (а ведь наличие gmail аккаунта = количеству аккаунтов в google play для android).

          Сколько там осталось MS Windows для выхода в интернет?
          А сколько уже сейчас android для интернет?

          Есть мнение, что раз Google не смог собрать конкурента мессенжерам (а все свои попытки сам же и закапывает), то будут использовать конкурентное преимущество в виде Gmail как части android и постепенным «улучшением» gmail и добавлением посторонних к email функций — соберут свой альтернативный «как бы убер-мессенжер».
            +3

            xmpp так и оставался развлечением гиков, т.к. светлые идеи без денег шансов не имеют

              +2
              xmpp одна из причин что корпорации так легко все под себя взяли. Ужасный протокол, обмен файлами? голосовые сообщения? экономия трафика? нестабильное соединение? голосовые звонки? водео звонки? все это работает через жопу или не работает вовсе.
                +1
                xmpp сдох когда потребовались стабильно работающие клиенты под смартфоны. Внезапно выяснилось что их просто невозможно сделать на этом протоколе.
          +2
          К возможности использовать Gmail в обычной программе на компе (вроде офисного Outlook) эта проблема не относится?
            +3

            Вот это уже интереснее чем PHP IMAP. Потому что таки относится. Только что проверил: Outlook тоже только по паролю входить умеет. Да и вообще в справке самого gmail нового варианта авторизации даже не упомянуто.

              +3
              Я не знаю других способов использования Outlook, кроме как забить в него пароль и все настройки POP3/IMAP.
              Только наверное настраивать не буду, а то вдруг оно сможет «удалить все письма старше 14 дней» с сервера.
              +2
              Вот, что Гугл пишет в своей рассылке:

              Email

              If you are using stand-alone Outlook 2016 or earlier, move to Office 365 (a web-based version of Outlook) or Outlook 2019, both of which support OAuth access. Alternatively you can use G Suite Sync for Microsoft Outlook.
              If you are using Thunderbird or another email client, re-add your Google Account and configure it to use IMAP with OAuth.
              If you are using the mail app on iOS or MacOS, or Outlook for Mac, and use only a password to login, you’ll need to remove and re-add your account. When you add it back, select “sign in with Google” to automatically use OAuth.

              Calendar

              If you use CalDAV to give an app or device access to your calendar, switch to a method that supports OAuth. We recommend the Google Calendar app [Web/iOS/Android] as the most secure app to use with your G Suite account.
              If your G Suite account is linked to the calendar app in iOS or MacOS and uses only a password to login, you’ll need to remove and re-add your account to your device. When you add it back, select “sign in with Google” to automatically use OAuth. Read more
              Contacts

              If your G Suite account is syncing contacts to iOS or MacOS via CardDAV and uses only a password to login, you’ll need to remove your account. When you add it back, select “sign in with Google” to automatically use OAuth. Read More
              If your G Suite account is syncing contacts to any other platform or app via CardDAV and uses only a password to login, switch to a method that supports OAuth.
                +8
                If you are using stand-alone Outlook 2016 or earlier, move to Office 365 (a web-based version of Outlook) or Outlook 2019, both of which support OAuth access.
                А я-то думал — что ещё придумают большие конторы, чтоб заставить людей купить/обновиться выше Outlook2010?
                Тада! И сектор педофилия терроризм безопасность на барабане! /sarcasm
                *ушёл радовать руководство необходимостью новых корпоративных закупок*
              +1
              Ну так понятное дело, Гуглу не выгодно когда юзеры за почтой ходят не просматривая баннеры. У меня вообще fetchmail забирает с гугла почту и несёт на мой сервер. Тоже может отвалиться :(
                0

                А в gsuite есть баннеры?

                  –2
                  10 дол. США за користувача на міс.

                  Думаю, можно обойтись без рекламы.
                  0

                  Просто любопытно: а зачем вам в этой схеме Гугл? Просто ради адреса? Так Гугл прекрасно умеет в переадресацию.

                  +5
                  «4. Впилить SASL XOAUTH2 в PHP IMAP»?
                    0
                    В итоге здесь пришли к тому же: github.com/google/gmail-oauth2-tools/issues/18#issuecomment-568880309
                      0
                      Но оказывается не всё так просто:
                      wiki.php.net/todo/ext/imap?s%5B%5D=imap
                      bugs.php.net/bug.php?id=78572
                        0
                        Есть год на «перезагрузку», так понимаю.
                          +1
                          Сильно меньше, feature freeze в июне где-то обычно. Я не сильно знаком с процессом принятия патчей в PHP, но по-моему для стадии лишь только обсуждения идеи, а не review (полу)готового patch proposal — шансов попасть в релиз в следующем году уже нет. Как максимум отдельный pecl пакет, который ещё через релиз-два примут в ext/
                        0
                        Вариант добавления OAuth в расширение PHP IMAP отпадает: news-web.php.net/php.internals/107950
                        +1
                        Может кто поделится работающим кодом? Хоть с тем же zend-mail… А то везде примеры с паролем…
                          +2
                          Все гораздо проще, просто не нужно использовать gmail для отправки писем с сайта. Нужно использовать инструменты по их прямому назначению. Например, пхп, который в 90% случаев работает синхронно с обработкой запроса клиента, просто не должен делать все это — устанавливать ssl сессию с gmail, не должен через него отправлять письмо и все такое. Должен быть релей в локальной сети. Тогда пользователь быстро получит письмо, а пхп воркер будет недолго занят.

                          Ну и да, php-imap это все таки получение писем, думаю imap клиентов, написанных на php и реально используемых реальными людьми для получения писем из gmail очень мало. И, если они вообще есть, наверное им лучше поменять свой способ получения писем, в независимости от данной новости.
                            –2
                            Собственный сервер для отправки писем очень быстро попадёт в бан у gmail. Проходили такое уже. А вот если пересылать их же через почту на gmail, то уже нет.
                              +3
                              Здесь скорее идет речь про релей в локальной сети, а не самостоятельный почтовый сервер. Релей устанавливает соединение с Gmail, а клиенты просто используют релей для отправки писем, сами ничего про Gmail не зная.
                              +1

                              imap клиентов на php не мало. Это тонна автоматизации у плюс минус продвинутых компаниях.

                                0
                                Чего то не могу я придумать пример использования php-imap в +- продвинутой компании в целях автоматизации для получения писем с gmail. У меня то компания совсем не продвинутая получается, то gmail лишний
                                  0
                                  У меня тикет-система забирает почту по imap.
                                    +1

                                    эмм, с gmail?)

                                      0
                                      даже больше — с GSuite.
                                    0

                                    А для кого существует G Suite? Думаете, мало крупных компаний, которые его используют?

                                      0

                                      Много. Но они вряд ли используют PHP IMAP для доступа.

                                        +1

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

                                          0

                                          При современных ценах на SaaS хелпдески, как-то даже странно поддерживать свой велосипед.

                                            0

                                            Почему вы решили, что речь о своём велосипеде, а не о self-hosted версии коммерческого helpdesk'а? (почему не SaaS, предлагаю оставить за скобками)

                                              0

                                              Потому что если речь о self-hosted версии коммерческого helpdesk’а, то это проблема индейцев, которая шерифа волновать никаким боком не должна. Это, очевидно, головная боль коммерческого helpdesk’а.

                                                0

                                                Вы правы. Что, впрочем, не отменяет тот факт, что проблема таки есть. И её как-то надо будет решать.

                                                  0

                                                  А вот не факт. Если helpdesk был куплен однократно и как есть...

                                          0
                                          Я думаю что и не мало и не особо много, опыт работы в крупных компаниях мне подсказывает, что у них много сотрудников, и свой почтовый сервис на каком-нибудь ms exchange выходит сильно дешевле.

                                          Также, я заметил что крупные компании, в которых я работал, редко используют php в принципе, и в частности php-imap для забора почты. Даже если это какие то тикетные и хелпдеск системы, то в основном это java приложения, в основном jira или продукты ibm. По крайней мере, по моему опыту.
                                          0

                                          Разобрать стандартный xls из стандартного письма заказчика, положить во внутреннюю систему, раскидать под это дело таски нескольким людям. Если чего-то нет, автоматически заказать и тп.


                                          У нас так яндекс.еда заказывает (только скрипты на node.js и yandex почта, поэтому сильно не касается, но у меня были заказчики с такими же кейсами и gmail+php).

                                      0
                                      Речь я так понимаю идет не только про IMAP, но и про SMTP тоже, правильно?

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                      Самое читаемое