Алексей Ван <o-s-a.net>
Алексей Ван <o-s-a.net> личный блог
31 августа 2014, 09:15

Открытая микро библиотека с бесплатной СМС рассылкой

    Всем привет!
 
    Уже несколько лет слышу, что у многих, в составе торгового робота есть СМС рассылка.
    Это создаёт несколько положительных моментов, от неустанного контроля позиции и оперативного получения сигналов, до спокойной, без нервотрёпки, возможности выйти из дома, во время сессии.
 
    Некоторое время назад реализовал у себя в платформе эту возможность, и вот теперь хочу ею поделиться с начинающими программистами. Надеюсь пригодится.
 
    Представляю OpenSource микро библиотеку для отправки СМС и электронных писем. Язык реализации C#.
 
    Архив http://sib-algo.ru/?wpdmact=process&did=Mi5ob3RsaW5r
    Или со страницы:http://sib-algo.ru/?p=106
 
    Что в архиве:
  1. Библиотека
  2. Исходники библиотеки
  3. Исходник примера использования
  4. Этот пост вместо инструкции
  5. Открытая лицензия
 
    Для использования в своём проекте надо скинуть в корень проекта библиотеку и добавить в ссылки проекта:


 Открытая микро библиотека с бесплатной СМС рассылкой
 
 
 
     Прежде чем отправлять СМС и письма нужно настроить соответствующие сервера рассылок.
 
Делается это вызовами:
  SmsEngine.MailServer.ShowSettingsDialog();
и
 SmsEngine.SmsServer.ShowSettingsDialog();
из любой части кода.
При вызове настроек Mail сервера рассылок появиться меню:
 
 Открытая микро библиотека с бесплатной СМС рассылкой
 
    Необходимо заполнить соответствующие поля. Поле адресаты может содержать тот же адрес что и отправитель. После нажатия кнопки «Принять» библиотека создаст себе директорию Engine в корне проекта, для хранения настроек и всё сохранит. Каждый раз ничего настраивать не надо. Можно также отключить рассылку соответствующим checkBox, если вдруг рассылка пока не нужна.
    При вызове настроек SMS сервера появиться меню:
 Открытая микро библиотека с бесплатной СМС рассылкой
 
    Также надо ввести все данные. Библиотека всё сохранит.
    После этого можно посылать СМС и письма из любой части проекта, вот так:
SmsEngine.SmsServer.SendSMS(«письмо»);
SmsEngine.MailServer.SendLetter(«письмо»);
    Вызовы асинхронные. Никого не задерживают. Потоки на отправку стоят в очереди. Если во время отсылки сообщения есть ошибка выпрыгивает окошко с её спецификацией.
 
Как работает почта:
    Стандартная рассылка почты C#. Строки доступа нашёл для гугл и яндекс почтовиков, поэтому работает только от этих почтовых серверов.
 
Как работет СМС рассылка:
    С этим сложнее. Никаких стандартных, простых и бесплатных штук для отправки СМС я не нашёл. Поэтому пришлось использовать гугл аккаунт и его календарь в качестве сервера рассылок.
    Для календаря гугл формируется письмо якобы с напоминанием о некоем событии. Событие прописывается в календарь. И затем, происходит оповещение владельца аккаунта об этом «событии» на телефон.
    Поэтому можно наблюдать пакеты с сообщениями от робота, прямо у себя в календаре, аккаунта гугл.
    Единственная возможная проблема это синхронизация времени на ПК и в самом календаре. Проблемы возникают если в календаре и на ПК разное время, разные часовые пояса и разное представление о смене времени с зимнего на летнее. И за этим невозможно проследить программно. 
    Подробнее о настройке Гугл аккаунта и его синхронизации с ПК в архиве.
 
    Идея взята из этой записи: smart-lab.ru/company/rusalgo/blog/132960.php
    На боевых системах у меня стоит несколько другая версия рассылки, т.ч. если в этой что-то не так, пишите, поправлю.
    Логика отправки Смс находится в SmsThreadSaveSender.cs, логика отправки Почты в MailThreadSaveSender.cs. Всё остальное сервис. Т.ч. не обязательно кидать в меня тухлыми яйцами, если что-то не понятно или не нравиться. Берём логику отправки и делаем всё по своему.
20 Комментариев
  • Stanislav-A
    31 августа 2014, 09:31
    вот так и расползаются баги
  • professor facepalm
    31 августа 2014, 09:55
    Имхо, бесполезная библиотека.
    Отправка писем ищется в гугле за минуту.
    Отправки смс фактически нет.
    Тащить в свою программу непонятную библиотеку смысла нет никакого.
    Ну и задачу «до спокойной, без нервотрёпки, возможности выйти из дома» такая библиотека сама по себе решить не может. Т.к. есть и другие причнины, из-за которых может нарушиться стабильное функционирование торгующего робота. Задача эта сложная и комплексная.
  • Мурен(а)
    31 августа 2014, 11:05
    Через USB модем 3g отправка смс делается гораздо проще.одна командная строка в cmd.exe. если интересно, в моих постах я это описывал.
    • Lafert
      31 августа 2014, 17:28
      Идущий по воде, пересмотрел 35 страниц заголовков Ваших постов, пока не нашел. Гугл по словам sms, cmd, 3g, ognevoy с уточнением site:smart-lab.ru тоже не помогает. Если не трудно, дайте, пожалуйста, прямую ссылку)
      • Мурен(а)
        31 августа 2014, 18:31
        Lafert, Идущий по воде, smart-lab.ru/blog/25846.php#comments
        smart-lab.ru/blog/30381.php
        smart-lab.ru/blog/146267.php
        smart-lab.ru/blog/146267.php
        smart-lab.ru/blog/146267.php
        tinyurl.com/p4qawnz
        www.itinvest.ru/software/comp/smartx/alerts/
        smart-lab.ru/blog/30381.php
        smart-lab.ru/blog/25846.php#comments
        по программе smslite есть хепл у них на сайте. если не найдете, могу выслать на email

        astrader.ru не работает в выходные. в обычн дни работает
  • Lafert
    31 августа 2014, 11:08
    спасибо, а можно пару слов о опыте работы с такой рассылкой смс?

    Сколько времени в среднем проходит между отправкой и получением
    Какое максимальное время между отправкой и получением
    Сколько надо смсок отправить в день, что бы исчерпать дневной лимит гугла
      • Lafert
        31 августа 2014, 11:14
        Алексей Ван, а сколько было смсок максимум в день?
  • ace-fltrade
    31 августа 2014, 11:21
    Автор молодец. Немного добавлю об ограничениях с которыми можете столкнутся. 1) Google Calendar. Ограничение — если отправите 10 смс подряд(1 минута) вас забанят на день, где то.
    2. Если робот начнет сыпать ошибки и создавать события в календаре, события могут exeption выдать, если создаете в одно время допустим несколько сразу 2) Еще есть сервис sms.ru. Там тоже открытое api простое и бесплатно можно отправлять до 60 смс в день. Теперь об бесплатных ограничениях. Допустим часов в 10 если создать несколько событий или отправить несколько смс, то большая вероятность что пару недойдет. Либо будет лаг минут в 10. После 19 например такой проблемы нет. Т.к. и гугл и смс.ру используют так называемые неименнованные каналы, т.е. бесплатные или дешевые. Если для кого-то нужна именно 100% точность в виде смс, то рекомендую использовать платные сервисы именнованные каналы или типо того… Google calendar интересно использовать как удаленный журнал робота или журнал о сбоях робота. В общем как то так
  • Deamoniy Steslavovich
    31 августа 2014, 11:33
    Я у себя тоже думал насчет СМС. Но все-таки решил остановиться только на электронной почте. Во-первых, смс в остальной куче спама можно пропустить. Во-вторых, бесплатные сервисы имеют кучи ограничений, а делать костыли на Гугл календаре не хочется. В итоге завел отдельный ящик для робота, установил почтовую программу на телефон и письма доставляются мгновенно.

    В любом случае, смс и почта не позволят отреагировать на ошибку, а только узнать о ней. Для обратной связи нужно реализовать веб-интерфейс у робота.
    • quant_trader
      31 августа 2014, 19:08
      Станислав Дорошин, зачем нужен веб интерфейс если можно присоединиться к рабочему столу? В качестве фронтенда для роботов (включить отключить выставить лимиты) ексель очень удобен, особенно когда много счетов/терминалов и роботов/систем.
      • Deamoniy Steslavovich
        31 августа 2014, 22:17
        quant_trader, в принципе, да, для полного контроля все-таки лучше подключаться к рабочему столу. Веб-интерфейс скорее подойдет для постоянного доступа к детальной информации о работе — видеть графики, параметры и т.п. Постоянно можно посмотреть статус, в то время как почта будет поступать только с некоторой периодичностью.
  • super_mario
    31 августа 2014, 14:35
    Открытая микро библиотека с бесплатной СМС рассылкой

    Думал библиотека с трейдерскими книжками и рассылкой новинок по СМС. А тут опять про роботоф :(
  • kvazar
    01 сентября 2014, 00:08
    спасибо, парни, пишите еще! тема устойчивости работоспособности роботов актуальна, а инфы не много

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн