Mail.Ru для бизнеса, часть 2: как это работает

    Недавно мы запустили «Mail.Ru для бизнеса». В прошлом посте мы уже рассказывали о том, как организовать корпоративную почту на Mail.Ru, а сегодня подробнее остановимся на технологиях, которые мы задействовали при реализации. При работе над проектом мы реализовали ряд технических решений на серверной и клиентской стороне, которые в итоге позволили сделать сервис удобнее. В этом посте мы подробнее расскажем, как технологически устроена наша клиентская часть.

    Под катом — про single-page, сбор ошибок, шаблонизацию и переход от одного URL-а к другому без перезагрузки страницы.





    Single-Page

    Интерфейс главной страницы «Mail.Ru для бизнеса» достаточно простой и удобный. Именно на этой странице начинается процесс добавления доменов. После регистрации первого домена вам станет доступна админка. Всё вместе — главная и админка (и другие скрытые страницы) – это одно полноценное single-page приложение.



    Для реализации single-page приложения были использованы техники, которые с успехом применялись при разработке Почты, Календаря и Адресной книги. Например, отрисовка страниц происходит на клиентской стороне с помощью шаблонизатора Fest (подробнее о нем – чуть ниже), а всё общение с сервером ограничивается обращением к методам API.

    Некоторые же приёмы, наоборот, были применены впервые, и я очень рада, что мне удалось привнести что-то новое в процессе разработки :)

    Мультиавторизация

    Помимо красоты и удобства, single-page открывает нам доступ к плюшкам мультиавторизации. Мультиавторизация у нас есть и на основной Почте; для новой же почты с доменами и красивостями это, как говорится, то, что доктор прописал. Можно одновременно сидеть в корпоративном и личном ящике, и быстро переключаться между ними. При этом опять-таки не происходит перезагрузки страницы.



    CSS-анимация

    Мы решили отказаться от поддержки старых браузеров, поскольку считаем, что администраторы доменов — достаточно продвинутые пользователи. Например, IE мы поддерживаем, начиная с 8-й версии и выше. Благодаря этому у нас развязались руки в плане использования современных плюшек. Особо выделяется среди них CSS-анимация. Как известно, пользователи любят, чтобы на странице все было красиво и плавно. Можно, конечно, это «красиво и плавно» реализовать теми же скриптами, но если браузер сам дает нам возможность организовать динамику стандартными средствами, почему бы этим не воспользоваться?

    Основная работа по реализации анимации выполняется с помощью CSS.

    .panel {
        …
        top: -110px; 
        transition: top 0.5s 0;
    }
    /*показ панели */
    .panel__show {
        top: 0; 
    }
    


    Скриптом мы только запускаем ее в нужные нам моменты.

    var $panel = $('#id1')
        , $wrap= $('#id2')
        , offsetTop = $wrap.offset().top + $wrap.outerHeight()
    ;
    
    $(window).scroll(function() {
        var show = this.scrollTop() > offsetTop;
        $panel.toggleClass('panel__show', show);
    }.throttle(200, $(window)));


    Но мы решили пойти дальше и сделать анимацию даже для тех пользователей, которые пользуются браузерами, не поддерживающими эти замечательные CSS-плюшки. Для них мы делаем анимацию средствами jQuery. Для того, чтобы определить, поддерживает ли браузер CSS-красоту или нет, мы используем стандартную браузерную функцию CSS.supports:

    var cssTransitions = 
        CSS.supports("transition", "all 1s 1s")
        || CSS.supports("-webkit-transition", "all 1s 1s")
        //… etc
    ;
    ...
    if( cssTransitions ) {
        //анимация средствами css
    }
    else { 
       //анимация средствами jQuery
    }
    


    CSS.supports — это что-то типа стандартизированного Modernizr, только нативного и выполняющего одну конкретную задачу – проверку поддержки определенного CSS-свойства. Нативная поддержка есть в браузерах Chrome 28+, FireFox 22+, Opera 12.1+. Для остальных браузеров, мы используем полифил, написанный одним из разработчиков нашей почты. Этот полифил по-умолчанию доступен практически на любом проекте Mail.Ru и с успехом применяется в некоторых специфических ситуациях.

    Fest

    Fest — это наша разработка. Он представляет из себя шаблонизатор общего назначения, с помощью которого мы формируем страницы. Fest подходит для шаблонизации как на стороне клиента, так и на сервере. Основное его достоинство – скорость работы: шаблоны «собираются» на клиенте действительно быстро. Другая особенность — это поддержка модульности на уровне шаблонов: мы создаем один шаблон и используем его для множества разнообразных страниц или форм.

    Все формы, которые присутствуют на странице — добавление домена, пользователей, попапы, добавление/удаление администратора — строятся на одном шаблоне. Благодаря универсальности Fest мы можем позволить себе внутри одного и того же шаблона отрисовывать абсолютно разные контролы: попапы с дропдаунами, попапы без дропдаунов, страницы с чек-боксами. Формирование всех этих форм происходит в одном месте.


    History API

    Как вы могли заметить, мы считаем хорошей практикой использование сторонних разработок, если они хороши и подходят для наших целей: зачем изобретать велосипед? Так, в нашем проекте мы активно используем полифил History API – форк библиотеки от Devote. Применение History API существенно упрощает жизнь разработчикам. Mail.Ru для бизнеса «магическим образом» переходит от одного URL-а к другому без перезагрузки страницы — в зависимости от того, какие действия совершал пользователь. History API позволяет нам передавать нужные параметры, которые никак не отображаются в UI, и вуаля: новый слайд отрисован. При этом, если пользователь перезагрузит страницу, то он окажется ровно на том месте, где был.

    Как это все работает? API предоставляет нам доступ к объекту типа History, который есть у каждой вкладки и располагается по адресу window.history в объектной модели. С помощью JavaScript мы можем манипулировать с адресной строкой, «переходя» по страницам с помощью методов .pushState(state, title, url), которые добавляют новый url в историю браузера и .replaceState(state, title, url), которые меняют текущий url без добавления нового пункта в историю.

    Свойство же state объекта history всегда будет указывать на актуальное «состояние» текущего url-а. Например, если мы сделали pushState({ data: “test1” }, “”, “url1”) и pushState({ data: “test2” }, “”, “url2”) – т.е. совершили два «перехода» по страницам с добавлением пунктов в историю браузера и оказались на странице “url2”, а пользователь нажал «Back» в браузере и оказался на странице “url1”, то значение свойства history.state.data будет “test1” – то, что нам нужно.

    Особенно это удобно на главной странице: если пользователь хотел перейти на вполне конкретный адрес, но в данный момент не авторизован, то в pushState мы передадим объект state, содержащий нужный адрес, а после авторизации мы перенаправим его туда, куда ему хотелось попасть — таким образом, ему не придется снова переходить ручками. Вся логика переходов выполняется в браузере, без перезагрузки страницы, при этом адрес страницы выглядит «по-человечески», без хешей (“#”).

    //определяем текущий URL
    var path = history.location.pathname; // history.location – from polyfill 
    if( /* пользователь не авторизован */ ) { 
        var state = {
            notAuth: true
            , urlBack: (path != "/") ? path : ""
        };
        //запоминаем текущее состояние пользователя и
        // переходим на главную страницу с отрисовкой соответствующего слайда
        history.pushState( state, null, "/");
    }
    


    Затем, после авторизации, мы понимаем, куда хотел отправиться пользователь, и перекидываем его в место назначения.

    RequireJS vs SingleFile

    Большое singe-page приложение это всегда много js-модулей. Какие-то модули — это общий функционал, который нужен практически всегда, какие-то модули нужны только на отдельных страницах. При разработке достаточно сложного функционала количество js-файлов растёт очень быстро. При этом разработчику нужно постоянно думать о зависимостях и о порядке подключения js-файлов. Ошибившись в порядке или забыв подключить нужный файл, можно получить ошибку в самом непредсказуемом месте. AMD API как раз решает эту проблему. Разработчику просто нужно указывать список зависимостей и объявлять модули специальным образом, а о загрузке этих модулей в правильном порядке позаботится RequireJS.

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

    Понятно, что в большинстве случаев весь набор модулей не нужен и может показаться, что некоторые из них подключаются «зря», увеличивая количество данных, передаваемых в браузер. Но это только на первый взгляд. На самом деле gzip-сжатие на сервере отдаваемых js-файлов практически нивелирует эту проблему. Тем более, что мы экономим на http-запросах. В результате один большой js-файл загрузится быстрее, чем несколько маленьких, даже с учётом того, что маленькие файлы будут загружаться «лениво» — т.е. только по мере необходимости. Для подробного ознакомления с вопросом предлагаю к прочтению статью Загрузка и инициализация JavaScript или самостоятельный research на тему.

    Сборка проекта

    Такие вещи, как описанная в предыдущем разделе сборка js-файлов, не должны делать руками. Перед выкладкой в продакшн, помимо сборки js-файлов, нужно собрать css-ки из scss-файлов, «скомпилировать» fest-шаблоны и полученный результат передать js-сборщику, нужно обновить номер версии в конфигах и т.д. Все эти вещи нужно было как-то автоматизировать.

    Было принято решение использовать Grunt – это менеджер задач общего назначения, написанный на js под nodejs. Он позволяет js-разработчику писать таски для сборки проекта на сервере. Для Grunt существует база готовых тасков, из которой и были взяты, например, grunt-contrib-sass и grunt-contrib-requirejs. Grunt запускает нужные таски автоматически при выполнении git push.

    Cбор ошибок

    Веб-разработчику полезно знать об ошибках на клиентской стороне. Еще круче было бы где-то их собирать, хранить и потом исправлять. Мы для этого используем стороннюю платформу Sentry.

    Sentry – это опенсорсный проект, который работает с целой россыпью языков и платформ. Он позволяет отслеживать как серверные, так и клиентские ошибки и делать по ним статистику. Этой платформой также пользуются, например, в Mozilla и Instagram.

    Sentry умеет отправлять письма с описанием ошибок. При этом можно не опасаться, что одинаковые репорты о малозначительных неполадках забьют ящик: параметры сообщений, которые достойны того, чтобы беспокоить разработчика, можно легко настроить.

    С помощью дашборда мы можем не только отслеживать ошибки в реальном времени, но и фильтровать их по самым разным параметрам – от источника бага до статуса, который мы сами же ему и назначили.

    Особенно незаменима Sentry при ловле экзотических багов, которые мы воспроизвести не можем. Согласитесь, имея перед глазами строчку кода и описание ошибки (в том числе частоту появления и браузер), гораздо удобнее разбираться, что пошло не так.

    Однако простого описания ошибки и номера строки может оказаться не достаточно. Для некоторых экзотических или сложно воспроизводимых ошибок нужна ещё дополнительная информация для анализа этой ошибки. Например для ошибки “$ is not defined” нужно понять, а загрузился ли у нас jQuery? Для сбора браузерных ошибок мы используем библиотеку Raven.js, которая обладает одной недокументированной возможностью – вызывать обработчик dataCallback перед каждой отправкой ошибки на сервер:

    var ravenSetTimeout = typeof setTimeout === 'function' && setTimeout;
    var options = {
        dataCallback: function(obj){
            var userData;
            if( typeof obj === "object" ) {
                userData = obj["sentry.interfaces.User"];
                if( !userData ) {
                    userData = obj["sentry.interfaces.User"] = {};
                }
                userData.inFrame = window.parent !== window;
                userData.jQueryVersion = typeof jQuery === 'function' && jQuery.fn.jquery;
                userData.setTimeoutBody = 
                  typeof setTimeout === 'function'
                  && (setTimeout + "").contains("[native code]")
                    ? "[native]"
                    : ravenSetTimeout
                        ? setTimeout === ravenSetTimeout ? "[raven]" : "[other]"
                        : "[none]"
                ;
            }
     
            return obj;
        }
    };
    Raven.config("…", options).install();
    


    В этом примере мы проверяем, не запушены ли мы в iframe’ме, версию jQuery (если она вообще загружена) и код setTimeout (т.к. он может быть подменён). Мы же собираем чуть больше статистической информации для правильной диагностики ошибок. Значение свойства «sentry.interfaces.User» будет отображаться в интерфейсе Sentry в специальном поле.

    Discuss

    Так работает наша Почта для бизнеса. Надеюсь, она будет радовать пользователей красотой, удобством и функциональностью. Подробнее про «Mail.Ru для бизнеса» можно почитать прямо здесь. Напомню, что сервис сейчас в бете и мы будем рады вашим отзывам и предложениям по почте feedback@biz.mail.ru или в комментариях к этому посту.

    С удовольствием окажем любую поддержку пользователям Хабра, которые захотят попробовать наш новый сервис.

    Ольга Алексеева,
    Егор Халимоненко (termi)
    Группа frontend-разработки Почты
    Mail.ru Group
    Building the Internet

    Comments 54

      –7
      Это безумие для бизнеса — держать корпоративную почту на mail.ru
      Стоимость взлома mail.ru аккаунта — 700 рублей.
        +1
        Для среднего и крупного бизнеса реально безумие. А вот для мелкого бизнеса и ИП может стать отличной альтернативой такому варианту, как например: mmohot@yandex.ru

          0
          У Yandex и Google тоже есть предложения для «корпоративных» клиентов.
            +4
            Гугол просит за это немалые деньги, даже не удосужившись сделать адекватную службу поддержку.
              –2
              Вы хоть раз пользовались Enterprise поддержкой? Вполне адекватные
          +12
          К сожалению, если пользователи недобросовестно относятся к своим паролям, их действительно можно взломать. Именно поэтому мы и предлагаем возможность установки второго фактора — номера телефона.
          По отношению к нашим пользователям сервиса «Mail.Ru для бизнеса» мы требуем подтверждения аккаунта номером телефона — в таком случае, при любых проблемах пользователи всегда смогут восстановить контроль над аккаунтом.
            –4
            А при чем тут пароли пользователей? У вас периодически находят XSS, от которых никакие пароли не спасут. Это реально ваш позор, с этим надо что-то делать…
              0
              Пруфлинк? :)
                0
                Пожалуйста, выбирайте на вкус и цвет: yandex.ru/yandsearch?text=xss%20mail.ru&site=habrahabr.ru&lr=213

                Я понимаю, что дырки закрывают, но они, как я написал выше, периодически находятся, что не является признаком высокого класса команды mail.ru. Позиция mail.ru — все проблемы с безопасностью связаны с человеческим фактором, типа пользователь сам виноват. Мне эта позиция не нравится.
                  0
                  yandex.ru/yandsearch?text=xss%20yandex.ru&lr=213&site=habrahabr.ru

                  XSS находят везде. И в явндексе и в гугле и в фейсбуке. Для старых проектов с большим количество кода, написанного неизвестно когда, это довольно актуальная проблема
            +1
            Поддержу, в том плане, что mail.ru это чуть ли не единственный почтовый сервис, куда постоянно не доходят письма. А всё очень просто, они блокируют айпи сервера, откуда пришла почта, при малейшем подозрении на спам и приходится им писать в службу поддержки, чтобы разблокировали. Почему-то с другими популярными почтовыми сервисами таких проблем не бывает. Что на яндекс, что на гугл, что на рамблер почта доходит без проблем. Поэтому даже своим клиентам всегда пишу, чтобы mail.ru они не пользовались ни за что! И эта война длится уже года три.
            +1
            Все замечательно, у нас даже есть желающие такой интеграции, но сколько не ищу у вас на сайте, но не могу найти у вас документации по API почты.
            Как создавать ящики используя API?
            Как получить количество непрочитанных писем?
            Как получить заголовки писем непрочитанных?
            Вот первые три вопрос которые пришли сразу в голову.
              +3
              По поводу API могу ответить, что мы активно работаем над возможностью его предоставления.
              Подскажите, пожалуйста, для каких целей вам оно может потребоваться? Это поможет нам лучше понять, какие возможности API необходимы в приоритетном порядке.
                +2
                Для интеграции с CMS. Так как мы разрабатываем расширения для Joomla, то нам в принципе много не нужно, возможность регистрации, авторизации, и возможность получения не просмотренных писем, ну и сами не просмотренные письма не плохо было бы получать, то есть заголовки не прочитанных писем.
                  0
                  Спасибо, учтем.
                  0
                  для каких целей вам оно может потребоваться?

                  Создание единой корпоративной подписи для сотрудников.

                  Реально?
                –13
                mail.ru для бизнеса? серьезно? Чтобы потом какой-нибудь мейл.ру защитник, без согласия установленный в систему сливал пароли в мейл.ру?
                  +13
                  Да как вы на этого защитника то попадаете то? Сто лет уже и мейлом и агентом пользуюсь, и в глаза его не видел. Единственно что я всегда при всех установках не глядя снимаю нахрен любые галки с доп. хренью. Еще яндекс баром научен.
                    +4
                    Типичный пользователь жмет «Далее, далее… ОК». Вот так и попадают.
                      +1
                      Получается, «типичный пользователь» сам себе злой буратино, разве нет?
                        0
                        Правило Парето распространяется и на эту область человеческой деятельности. Зачем думать, если есть рефлексы? Люди вообще не любят напрягаться. Вырабатывается шаблонная модель поведения, которая может быть улучшена лишь при наступлении очередной кризисной ситуации, или вообще не будет улучшена — ведь есть «компьютерщик» который всегда починит примус.
                          0
                          Правило Парето гласит, что «20 % усилий дают 80 % результата, а остальные 80 % усилий — лишь 20 % результата».

                          Поясните пожалуйста, каким образом правило Парето и ваш комментарий, связаны с моим предыдущим сообщением или с сообщением, на которое я отвечал.
                            0
                            Я про само «золотое» соотношение, его много где можно применить.
                      0
                      Работаю: Mail.Ru Group, ок
                    –6
                    Доверять бизнес корреспонденцию мейлрушникам? Тут на Гугл нет надежды, а эти легко по запросу сольют всю переписку.
                      0
                      Сноуден же сказал, что все равно на магистральном провайдере все прочитают. Это в штатах, я думаю что у нас тоже самое.
                        0
                        Мы действуем в соответствии с Конституцией РФ, согласно которой каждый имеет право на тайну переписки, телефонных переговоров, почтовых, телеграфных и иных сообщений. Ограничение этого права допускается только на основании судебного решения.
                          +5
                          2009 год. Платформа Мейл.Ру активно привлекает разработчиков обещая бесплатности, рекламу и дружественное API
                          2010 год. Платформа Мейл.Ру активно клонирует самые популярные игры и приложения или перекупает успешные имея всю статистику получения доходов разработчиками. Также вводится 30% комиссия со всех полученных доходов.
                          2011 год. Платформа Мейл.Ру запрещает рекламу внешних сайтов, что резко снижает доходы разработчиков. Также появляются сообщения, что приложения конкурирующие с мейлрушными резко теряют пользователей по непонятным причинам.
                          2012 год. Комиссия вырастает до 50% (не уверен что точная цифра). Закрываются приложения повторяющие функционал mail.ru. Ужесточаются правила приема новых приложений и требования по финансовой документации.

                          Вы хотите сказать вам кто-то из девелоперов после этого верит?
                            0
                            В России живем, уважаемые!
                            За последние годы можно уже понять, что конституция не работает! Поэтому надеяться на нее бессмысленно. Захотят прочитать, прочитают и без вашей конституции и судебных решений.

                            По сабжу могу сказать, что обычно пользовались корпоративной почтой гугла и нареканий не было. До мейла руки не доходили. Я думаю больших различий не будет, главное чтобы почта ходила. Надеюсь будет шанс протестировать когда-нибудь.
                            Единственное, что наверное идет в пользу гугла, то это запросы на прочтение чужой почты в гугле будут рассматривать дольше, нежели мейле, все-таки в российской компании вариант с «маски-шоу» может прокатить, а вот до америки еще добраться надо.
                          +5
                          В свете последних событий было бы неплохо иметь галочку — шифровать почту, хотябы ту которая ходит между biz ящиками компании в рамках mail.ru — это был бы сильный ход
                            +4
                            Спасибо за идею, обязательно рассмотрим.
                            –1
                            Я вот поверил им, перенес домен с pdd.yandex.ru, итог — ничего не работает (при попытки зайти в интерфейс адм. домена — 404). 4 дня почта не работала, в службе поддержки сказали, что решить вопрос не могут. Ушел обратно яндексу.
                            habrastorage.org/storage2/ba9/c49/529/ba9c49529366e4c2415165d086eb3328.jpg
                              0
                              Пожалуйста, уточните, с каким доменом возкникли проблемы — можно на почту o.parinov@corp.mail.ru
                              Обещаю разобраться в ближайшее время.
                                +7
                                Нашли ваш домен — проблема в том, что вы пытаетесь зайти в интерфейс администрирования под пользователем, который не является администратором домена. Попробуйте зайти под аккаунтом администратора (отличается доменом).
                                  –1
                                  Тем не менее, прошу прощения за столь долгий ответ — в выходные наша служба поддержки не работала.
                                  0
                                  очень сильно огорчает следующий момент: в мультиаккаунте находясь в одном из залогиненных аккаунтов при нажатии «Выход» происходит логаут из ВСЕХ аккаунтов. При дальнейшем логине все эти «мульти» приходится вводить опять вручную… напрягает такая модель поведения. Ну ладно логаут из всех аккаунтов добавленных из «мастер»-аккаунта, но отсутствие «памяти» весьма печалит
                                    0
                                    Кнопка «Выход» специально выходит из всех аккаунтов — чтобы был простой и быстрый способ разлогиниться на сервисе.
                                    А для выхода из каждого аккаунта мы можете воспользоваться кнопкой напротив имени аккаунта в «выпадушке» мультиавторизации — вот скриншот www.monosnap.com/image/WnUGhqga79nGSvEd0ogIsBMZU
                                      0
                                      С одной стороны логично, с другой — нет. Находясь в текущем аккаунте и нажимая на «Выйти» я никак не рассчитываю что выйдет со всех аккаунтов. Логичнее было бы поведение при мастер-аккаунте: нажимая Выйти в нем, происходит логаут из остальных, а при очередном логине в него — логин в «привязанные» аккаунты. А то бывает придет человек в гости, попросит почту проверить, нажимает «Выйти» (ну ведь логично же!), а я потом сижу и, матерясь про себя, в очередной раз обещаю себе не давать НИКОМУ свой ноут «проверить почту» попутно логинясь в нужные мне аккаунты.
                                      Вариант костыля — при > 1 логине выдавать предупреждение о том, что ВЫЙДЕТ отовсюду с кнопками «Обрекаю себя на муки» и «Я не сумасшедший»
                                      Вариант правильный — как описан мной выше с мастер-аккаунтом и авто-логин\логаут действиями.
                                        0
                                        Передал вашу идею ответственным людям, спасибо.
                                  • UFO just landed and posted this here
                                      0
                                      Не могли бы вы, пожалуйста, уточнить, о каких проблемах конкретно вы говорите? Что именно у вас не работает?
                                      Будем рады вам помочь.
                                      • UFO just landed and posted this here
                                      +1
                                      Есть небольшая непонятка.
                                      Не понятно чем обусловлено требование ставить приоритет именно 10 при добавлении MX-записи в DNS. Ведь важно чтобы она была просто самой первой (не везде можно задать приоритет именно конкретным числом).

                                      Очень нужны алиасы как к пользователям, так и к доменам. (http://habrahabr.ru/company/mailru/blog/186426/#comment_6483732).

                                      Также очень удобен почтовый ящик, который только пересылает почту (я это просто где-то видел, не помню где).
                                      Например boss@domain -> boss1234897@mail.ru (обычные люди очень привыкли к своим ящикам и заставлять их настраивать пересылку незачем).

                                      API для миграций в общем-то не очень нужен и может свестись к textarea вида «введите данные в формате
                                      сервер: логин: пароль: новыйящикнаbizmailru
                                      pop.gmail.com:test1: пароль:admin@domain
                                      pop.gmail.com:anna12: пароль:info@domain
                                        0
                                        Не понятно чем обусловлено требование ставить приоритет именно 10 при добавлении MX-записи в DNS. Ведь важно чтобы она была просто самой первой (не везде можно задать приоритет именно конкретным числом).

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

                                        Очень нужны алиасы как к пользователям, так и к доменам.

                                        В планах на реализацию есть, работаем на этим, спасибо.

                                        Также очень удобен почтовый ящик, который только пересылает почту (я это просто где-то видел, не помню где).

                                        Поясните, пожалуйста, почему неудобен способ пересылки, который можно настроить внутри в веб-интерфейсе почты? (пункт «Фильтры и пересылка»)

                                        API для миграций в общем-то не очень нужен и может свестись к textarea вида «введите данные в формате

                                        Функционал миграции так же есть в планах, и мы тоже активно работаем над этим.
                                          0
                                          >> Поясните, пожалуйста, почему неудобен способ пересылки, который можно настроить внутри в веб-интерфейсе почты? (пункт «Фильтры и пересылка»)

                                          Сколько действий для этого нужно сделать?
                                          Создать ящик, войти в него, указать ФИО, ввести капчу, ввести капчу, ввести №":%! ую капчу, найти фильтры(это самое простое), настроить пересылку.
                                            0
                                            Запрос понял, спасибо, обязательно подумаем.
                                        +2
                                        Такое ощущение, что в MailRu работает два лагеря. С одной стороны адекватные девелоперы, с другой — суткнутый на всю голову менеджмент, который творит такую херню, что волосы шевелятся. После такого прямо становится жалко тех людей. которым потом приходится восстанавливать имидж компании. А лет этак десять-двенадцать назад я заводил два ящика — «на Яндексе», для спама и регистраций, и «на Мейле» — «личный, только для посвященных». Вот только Яндексовый ящик с течением времени стал Личным и «основным», а Майловый сам превратился в спамопомойку. При том что я его как раз никому толком не давал.
                                          0
                                          Кстати, какой бы плохой Mail.ru не был, он обгоняет по качеству Bing. Это что касается поиска. www.versusit.ru/bing-vs-mail-ru
                                          Что же касается самой почты, то то если сравнивать с той же live то mail.ru примерно тоже самое. Ничем не лучше и особо не хуже. До gmail.com конечно очень далеко, но для мелкого ИП думаю вполне хватит.
                                            0
                                            Попробовал продукт. Главная беда с которой столкнулся, это как объяснить пользователям куда вбивать данные ящика?
                                            Вот так вот чтобы без изврата это сделать нельзя.

                                            Привычна и ожидаема схема как у Google. Зашел на страницу почты, вбил данные ящика, вошел.

                                            Но нет! Мы же в России! Нам надо придумать припоны, бюрократию и препятствия даже в Интернете! Хренушки! Надо сидеть и гадать, как же зайти в почту МайлРу для бизнеса. И звать сисадмина, который разберется с этим наисложнейшим вопросом!
                                              0
                                              Подскажите, пожалуйста, с какой именно проблемой при входе в ящик столкнулись ваши пользователи?
                                              Использовали ли инструкцию для пользователя, которая располагается в левом меню? Что в тех пунктах вам показалось непонятным?

                                              Кратко изложу, что написано в инструкции:
                                              Во-первых, вы можете зайти в почту через главную страницу Mail.Ru, введя в качестве логина имя ящика вместе с доменом
                                              Во-вторых, вы можете зайти в почту, используя специальную страницу типа biz.mail.ru/login/domain.ru
                                              В-третьих, вы можете настроить вход в почту через поддомен mail на вашем домене, например mail.domain.ru Подробнее — тут help.mail.ru/biz/mail-subdomain
                                                0
                                                > Подскажите, пожалуйста, с какой именно проблемой при входе в ящик столкнулись ваши пользователи?

                                                Входят на mail.ru и не могут войти в свой ящик. Зовут специалиста.

                                                > Использовали ли инструкцию для пользователя, которая располагается в левом меню? Что в тех пунктах вам показалось непонятным?
                                                Проблема не в том что какой то пункт инструкции не понятен. А в том что она есть.
                                                Никто не будет ее читать. Ну или будут в 1% случаев. В 99% случаев будут звонить администратору.

                                                А сценарий такой:
                                                1. идем на mail.ru
                                                2. видим что указывать можно тока общие домены take.ms/FjPrqk
                                                3. мозг пользователя взрывается, звонит администратору
                                                  0
                                                  Именно поэтому мы и предлагаем для пользователей либо специальный адрес biz.mail.ru/login/domain.ru либо возможность установки mail.domain.ru
                                                  Честно говоря, мы пытались убрать на главной «выпадушку» доменов — но эксперимент показал, что для нашей основной большой аудитории такая смена привычки оказалась достаточно сложной.
                                              0
                                              -
                                                0
                                                щас заминусуют… проводил эксперимент длиной в год(отдельная статья) в общих словах: зарегал ящик и не пользовался им, через год, там было около 400писем спама)само собой адрес знал только я.так же на ящик были навешаны соц.сервисы, соответственно вопрос: зачем это счастье в бизнесе? та же «почта для домена» яндекса, коей я впрочем тоже не пользуюсь выглядит намного привлекательней, хотя бы из-за моментального обновления зон.

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