company_banner

Бесплатно, без регистрации, но с смс

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

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

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




    Это было обычное уведомление без возможности прочитать письмо и ответить на него. К тому же, уведомление отправлялось только после доставки письма адресату. Мы сделали это специально для того, чтобы исключить возможность доставки смски до того, как стороний сервер примет письмо. Реализовали путём добавления зашифрованных служебных заголовков к письму и проверки этих заголовков в DSN-баунсе, полученном от принимающей стороны. В новой версии мы всё перекроили.

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



    Это позволяет дать доступ к письму, даже если другой почтовый сервис по какой-то причине письмо потеряет, либо если адресат был введён неправильно. Само письмо, открытое из смс, выглядит так:



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

    Безопасность


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

    1. Когда пользователь отправляет письмо с смс-уведомлением, оно сохраняется как отправленное. По уникальным данным формируется ключ, зашифрованный с помощью AES и обёрнутый для удобства в Base64. Все операции с письмом происходят по этому ключу.
    2. При попытке открыть письмо по ссылке из смс-сообщения проверяется время его создания. Письмо доступно только в течение двух часов после отправки. Как нам кажется, двух часов вполне достаточно, чтобы прочитать смс и ответить на него. А поскольку возможность ответа на письмо со страницы просмотра без аутентификации потенциально небезопасна, мы ограничили количество ответов с неё.
    3. В целях предотвращения отправки спама мы решили не передавать различную метаинформацию (адреса, телефоны и т. п.) с клиента http-аргументами. Таким образом, их нельзя подменить и отправить письмо на произвольный адрес.

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

    Производительность этой базы также позволяет легко использовать её и для более «тяжёлых» задач. Нагрузочное тестирование показало, что при смешанных запросах и небольших объёмах данных (100b, 3kb) связка «веб-сервер -> backend -> mongoS -> DB» выдерживает минимум 6000 запросов в секунду, а время ответа укладывается в 40 миллисекунд. Используется многопоточный бекенд, реализующий бизнес-логику, и пул коннектов к БД. Во время тестирования база состояла из одной машины с SATA-дисками. Сейчас её конфигурация состоит из трёх шардов, в каждом — репликасет из трёх машин на SSD-дисках. Для использования пула коннектов над всеми MongoS поднят tcp-балансер, потому что C++ драйвер не умеет подключаться к нескольким машинам с failover'ом.

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

    О будущем


    Как и любую новую возможность, письма в смс мы запускаем достаточно осторожно: нужно быть уверенным в том, что сервис не только отработает корректно, но и выдержит нагрузку. Именно поэтому в первое время мы не выносим настройку отправки смс на видное место, оставив её за галочкой «Отправить адресату SMS-уведомление после отправки письма» в самом низу страницы написания письма.

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


    Метки:
    Яндекс 664,93
    Как мы делаем Яндекс
    Поделиться публикацией
    Комментарии 65
    • 0
      Мне казалось эта функция существует уже довольно давно, больше года минимум.
      И еще — лично для меня была бы интересней другая функция — получение смс в момент, когда мне на почту приходит письмо. Не всегда есть возможность быть онлайн все время, было бы очень удобно.
      • 0
        Уведомление по смс было и раньше, но в сообщении не было ссылки. Теперь же можно по ссылке в смс прочитать письмо и ответить на него.

        Уведомление о полученных письмах — это интересно, мы думаем об этом. Но, например, Вы готовы к куче смс о письмах от соцсетей, купонаторов, прочих рассыльщиков?
        • +3
          Но ведь можно сделать выбор папок, для которых слать уведомления!
          P.S. лично у меня подписки и уведомления сразу сортируются по папкам, а об остальном получать SMS было бы замечательно.
          • 0
            безусловно решить можно почти любую проблему. мы будем думать над такой функциональностью.
          • 0
            Я — готов. Готов даже в первые тестировщики пойти. А с рассыльщиками спама боремся же.
            • 0
              Отлично! Следите за новостями!
            • 0
              Теперь эти рассыльщики будут спамить через ваши ящики на рандомные номера…

              Можно ли как то одним кликом удалить все сообщения вида *@xxxx.ru? А то давно почтовый ящик превратился в мусорную корзину. С одной стороны при регистрации на купонаторе я подразумевал, что не смогу никак отказаться от рассылки. Но хочется вернуть чистый ящик!
              • 0
                Спамить сложно — это надо взламывать ящики, плюс существует ограничение на количество отправляемых одним пользователем смс, да и обычная спамооборона не дремлет.
                • 0
                  + иметь номер телефон, чтобы перед этим его провалидировать.
                  Невыполнимая задача.
                  • +1
                    Если я зайти в свой ящик и отправлю письмо своему другу, указав при этом номер +7 903 7777777 на этот упадет смс-ка с письмом для моего друга? Этот номер соответственно ему не принадлежит. Я о таком виде спама говорил.

                    ps Я понимаю, что в смс будет адрес почты, который не принадлежит получателю, но факт получения такой смс-ки со ссылкой ведь возможен?
                    • +2
                      Возможен, но отправить много таких сообщений Вам не дадут ограничения, а отправить там спамовое письмо Вам не даст Спамооборона.
                  • 0
                    удалить все сообщения от адресата или с хоста удобнее всего через поиск по почте
                  • 0
                    Уведомление о полученных письмах — это очень нужная вещь. Разумеется она должна настраиваться. Чаще всего нужно, чтобы приходило смс если пришло письмо от конкретного человека. Единственная причина по которой я использую почту mail.ru, там смс-ки есть, и я так понимаю только у них
                  • 0
                    Вы явно не прочитали текст поста.
                    • 0
                      Хм, перечитал.Я упустил тот момент что раньше смс сообщение было менее функционально. Я просто не пользовался никогда этой функцией, потому и подумал что так и было.
                  • +8
                    Отличный сервис!

                    Если бы не знал о его наличии — отмел бы ссылку как фишинговую.
                    • +2
                      Солидарен.
                      • +1
                        Именно поэтому мы используем сокращатель ссылок ya.cc, у которого нет открытого наружу api. Понимаю, что это не всем известно, но все же мы старались представить ссылку как безопасную.
                        • 0
                          Может быть, использовать домен, к которому у пользователей больше доверия? В идеале yandex.ru (не думаю, что 4 лишних символа в SMS что-то решают).
                          • 0
                            Мы как раз стараемся выработать у пользователей доверие к ya.cc, так как только мы можем генерировать ссылки через этот сокращатель. Значит, контент там тоже наш.
                            • +2
                              А не логичней ли сокращать ссылки через ya.ru? Его-то точно все знают :)
                              • 0
                                А чем ya.cc хуже? И его скоро будут знать — ведь было время что и ya.ru не знали. А так — ya.ru не предназначен для сокращения ссылок. Для этого специально и создавался ya.cc
                                • +2
                                  ya.cc хуже тем, что его не знают )) а ya.ru это устоявшийся домен, который знают почти все. никто вам не запрещает делать нечто типа ya.ru/l/%yourHash% :)
                                  • 0
                                    Ничего, и ya.cc станет известным в массах
                                  • +3
                                    Он выглядит именно как попытка подменить урл на похожий, но другой (пр. b1izzard.com или mail.nu). Это именно то, о чем бы я подумал увидев ya.cc
                                    • 0
                                      Отнюдь. Кстати, одна известная российская соцсеть тоже имеет сокращатель ссылок на отдельном домене, притом тоже в зоне .cc. Это общий подход, и к нему все привынут.
                                      • +5
                                        Ну, это субъективное мнение. Я впервые вижу зону сс. Еще пара человек высказало схожее мнение.
                                      • +1
                                        … тем более в СМС. После сообщений «Вам пришла MMS! Загрузить по (ссылка)» мозг автоматически классифицирует неизвестные домены в SMS-ках как фишинг.
                                      • +2
                                        Я бы тоже подумал, что фишинг.
                                        Зона .cc у меня ассоциируется с кардерами, уж извините )
                                        ya.ru много более выигрышный вариант, непонятно, зачем выдумывать какие-то ещё домены.
                            • 0
                              Я правильно понял: для того чтобы данный механизм сработал, мне помимо email адресата необходимо как-либо указать его телефонный номер (задать его в контактах, например)?
                              • 0
                                Я не видел вакансии телепатов в Яндексе…
                                • 0
                                  Вообще у Яндекса должна уже есть вполне приличная база номеров телефонов своих пользователей. Вполне вероятно они могли бы использовать эти данные (естественно скрывая от отправителя телефон адресата).
                                  Потому и спросил.
                                  • 0
                                    Ну это больше похоже на «получение смс в момент получения письма», а не на отправку письма по смс. Не находите?
                                    • 0
                                      Нет, не находим. Во-первых, не в момент получения, а в момент отправки. Во-вторых, это не просто смс-уведомление, это ссылка, по которой можно быстро и удобно прочитать письмо и ответить на него.
                                      • 0
                                        Что-то сегодня я свои мысли толком собрать не могу. То, что описал Slipeer больше похоже на уведомление по смс (пусть и с возможностью прочитать это письмо). А то, что в посте — отправка письма смс-кой. По мне — так это разные вещи.
                                        • 0
                                          Верьте тому, что написано в посте.
                                • 0
                                  Если в адресной книге адресата нет, либо не указан его телефон — номер можно ввести в поле за галочкой «отправить адресату SMS-уведомление после отправки письма»
                                  • 0
                                    Ещё один интересный вопрос: единожды введённый телефонный номер (в поле за галочкой) где-нибудь сохраниться?
                                    • 0
                                      Этот номер телефона сохранится в адресной книге, чтобы Вам не пришлось его вводить в следующий раз.
                                      • +1
                                        Полагаю скоро у Яндекс будет обширнейшая в России база телефонных номеров пользователей интернета! (google c их контактами, синхронизированными с android, не в счёт — они не в России у них эту базу «органам» заполучить сложнее)
                                        P.S. Нет… Это не параноя — так наблюдение…
                                        • +1
                                          Не стоит думать, что мы все это задумывали ради сбора базы номеров. А про «органы» — у них есть свои базы, плюс доступ к операторам связи, да и на горбушке тоже можно почти любую базу купить.
                                • 0
                                  А как же «Почта для домена»? Там как обычно ничего не планируется хорошего добавить?
                                  • 0
                                    Думаю, в ПДД это тоже появится со временем.
                                  • –1
                                    Актуально ли это во времена смартфонов?
                                    • 0
                                      Не всем удобны нативные почтовые клиенты, не все из вообще пытаются использовать. А ссылку в браузере на телефоне как раз открыть может каждый.
                                      • +1
                                        Иметь возможность читать письма прямо на мобильном, не заходя в почту?
                                        Думаю, да.
                                      • +5
                                        Подождите, а получатель может отказаться от данного сервиса?
                                        • 0
                                          На текущий момент интерфейсно такая функция не поддержана. Но за спам мы не боимся благодаря множественным ограничениям и Спамооборане.
                                          • 0
                                            Речь даже не о спаме. Вы думаете я буду счастлив получать SMS, каждый раз когда мои коллеги отправляют мне электроннное письмо?
                                            • 0
                                              Только если они каждый раз будут взводить специальную галочку. Уверен, они не станут этого делать каждый раз.
                                              • +2
                                                Вы недооцениваете количество людей, которые считают, что вот их письмо — оно самое-самое важное. Сделайте блокировку этих спамерных смс обязательно.
                                                • +1
                                                  Думаю, возможность отписаться от смс появится в обозримом будущем.
                                        • +4
                                          Вопрос только не будет ли массы спамеров (или мошенников) использовать эту возможность для рассылки смсок вида:

                                          Вам письмо на vasya@gmail.com от
                                          petya@yandex.ru

                                          Прочитать:
                                          1ya.cc/m/asdasda

                                          при переходе по ссылке — вирус, спам или фишинговое письмо?
                                          • –1
                                            От фишинга никто не застрахован. Банальная внимательность нас всех спасет.
                                            • 0
                                              Тогда почему вы решили использовать для этого национальный домен Кокосовых островов?

                                              P.S. увидел ответ: habrahabr.ru/company/yandex/blog/171957/#comment_5986047
                                              • 0
                                                Многие доменные зоны уже давно утратили национальность — если у банановой республики есть красивый домен, почему бы его не продать? Это уже массовое явление — .me, .co, .im, etc и ничего плохого в этом нет.
                                            • 0
                                              Буду признателен, если вы расскажете как это можно реализовать массово.
                                              • 0
                                                Вам для общего развития или для реализации? :).

                                                Ну, а если серьезно, то ответ совсем уж простой:
                                                массово это реализуется за 20 минут кодинга на том же perl с использованием какого-либо sms сервиса со своим api для организации рассылок.
                                                Да и надо будет зарегистрировать домен на тех же кокосовых островах, похожий на ya.cc, а дальше уже дело в ваших намерениях — класть туда вирус или письмо.

                                                Саму смс-ку можно модифицировать так:
                                                Вам письмо от petya@gmail.com
                                                Прочитать:
                                                1ya.cc/m/asdasda

                                                Это чтобы у пользователя не возникло сомнений насчет своего адреса (да и у половины пользователей даже неправильный адрес не вызовет сомнений).

                                                В общем — думается мне будет эта возможность использована и в этих целях.
                                                • 0
                                                  Это я понимаю ) а вот причем здесь функционал Яндекс.Почты, о котором написано в посте, не понимаю?
                                                  • 0
                                                    Не при чем. Вы просто маскируетесь под существующий сервис (Яндекс.Почта), а не рассылаете такие ссылки сами по себе.
                                            • 0
                                              По-моему, гениально! Ждем в ПДД.
                                              • 0
                                                Спасибо! В ПДД это обязательно появится, но позже.
                                              • 0
                                                Было бы неплохо еще запилить СМС уведомление о новом письме на Яндекс Почте. Тоже будет неплохая услуга.
                                                • 0
                                                  Действительно, было бы здорово. Будем ждать такой функциональности!
                                                • 0
                                                  Я, слава богу, об этой вашей «новой возможности» до сегодняшнего дня не знал — и еще сто лет бы не знал, честное слово. :) Только что впервые получил это уведомление, и однако на тот адрес, что указан в качестве целевого, никаких писем не приходит (в отфильтрованных тоже нет).

                                                  И связывать отправку SMS с «быстрой реакцией получателя» имеют основание лишь жители Москвы/Петербурга (может, и некоторых других регионов, где сотовые операторы работают нормально). У нас в Новосибирске SMS регулярно задерживаются на несколько часов, а иногда и на сутки. С почтой такое бывает лишь раз в несколько лет, при совсем уж глобальных катаклизмах.

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

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