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