SMS рассылка из 1С

Четыре простых способа отправить SMS из 1С

 

1. USB 3G-модем

При наличии USB 3G-модема для отправки SMS можно использовать внешнее приложение с поддержкой командной строки.

Тестировал отправку SMS сообщений со следующими приложениями:
Microsoft SMS Sender (http://www.microsoft.com/ru-ru/download/details.aspx?id=5552)
cmd2SMS (http://vd-soft.biz/products/CMD2SMS.htm)

В этом случае отправка SMS сообщения сводится к программному созданию и запуску пакетного или командного файла (.bat, .cmd) или скрипта (.vbs), в котором производится запуск внешнего приложения с нужными ключами, с указанием номера телефона получателя и текста сообщения.

Пример bat-файла для отправки сообщения через приложение SMS Sender:

cd "C:Program Files (x86)Microsoft SMS Sender"
smssender.exe /p:81234567890 /m:"тестовое сообщение" /u /l

Пример программного создания и запуска bat-файла:

ИмяФайла = ПолучитьИмяВременногоФайла(".bat");
Bat_Файл = Новый ЗаписьТекста (ИмяФайла, КодировкаТекста.OEM);
Bat_Файл.ЗаписатьСтроку("cd ""C:Program Files (x86)Microsoft SMS Sender""");
Bat_Файл.ЗаписатьСтроку("smssender.exe /p:" +Телефон+ " /m:""" +ТекстСообщения+ """ /u /l");
Bat_Файл.Закрыть();
ЗапуститьПриложение(ИмяФайла);

2. Андроид смартфон

При необходимости организации SMS рассылки через имеющийся телефон (смартфон) на OS Android можно использовать функционал консольного приложения Android Debug Bridge (ADB)

Нужный дистрибутив android-sdk можно взять здесь (http://developer.android.com/sdk/index.html).

В данном случае, отправка SMS сообщения сводится к выполнению команды оболочки андроид-устройства.
При этом SMS сообщения будут формироваться непосредственно в самом телефоне.

Пример:

//---- создаем BAT-файл для Android Debug Bridge
ИмяФайла = ПолучитьИмяВременногоФайла(".bat");
Bat_Файл = Новый ЗаписьТекста (ИмяФайла, КодировкаТекста.Системная);
Bat_Файл.ЗаписатьСтроку("cd C:ADBplatform-tools");
Bat_Файл.ЗаписатьСтроку("adb.exe shell am start -a android.intent.action.SENDTO -d sms:" +Телефон+ " --es sms_body " +ТекстСообщения+ " --ez exit_on_sent true");
Bat_Файл.ЗаписатьСтроку("adb.exe shell sleep 1");
Bat_Файл.ЗаписатьСтроку("adb.exe shell input keyevent 22");
Bat_Файл.ЗаписатьСтроку("adb.exe shell sleep 1");
Bat_Файл.ЗаписатьСтроку("adb.exe shell input keyevent 66");
Bat_Файл.Закрыть();
//---- запускаем BAT-файл
ЗапуститьПриложение(ИмяФайла);

3. Отправка SMS через SMTP

Организации, имеющие корпоративную сотовую связь, могут воспользоваться SMS сервисом своего провайдера связи.

Тестировал функцию отправки сообщений через SMTP протокол SMS-сервиса Билайна:
— подробнее о сервисе — здесь (http://beeline.amega-inform.ru — демо доступ)
— о протоколе отправки через SMTP (http://beeline.amega-inform.ru/support/protocol_smtp.php)

Провайдер предоставляет вам логин и пароль к вашему SMS-сервису. Дальше, для отправки SMS сообщения вам достаточно отправить сообщение электронной почты с нужными реквизитами, с указанием номера телефона получателя и текста SMS сообщения.
При этом в качестве имени отправителя можно использовать короткий номер, обычный номер или псевдоним (наименование отправителя).

Пример отправки SMS:

// профиль почты
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "beeline.amega-inform.ru";
Профиль.ПортSMTP = 256;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;
Профиль.ПользовательSMTP = "логин";
Профиль.ПарольSMTP = "пароль";

// создать сообщение
Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.ИмяОтправителя = "Псевдоним";
Сообщение.Получатели.Добавить(Телефон + "@sms.beeline.amega-inform.ru");
Сообщение.Отправитель.Адрес = "Псевдоним@domain";
Сообщение.Тема = "";
Сообщение.Тексты.Добавить(ТекстСообщения);

// подключить профиль
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль);
Исключение
Предупреждение (ОписаниеОшибки());
КонецПопытки;

// отправить почту
Попытка
Почта.Послать(Сообщение);
Почта.Отключиться();
Исключение
Предупреждение (ОписаниеОшибки());
КонецПопытки;

4. Отправка SMS через http запрос.

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

Тестировал смс-рассылку через сервис SMS.ru:
— подробнее о сервисе — здесь (http://sms.ru)
— информация об API сервиса — здесь (http://sms.ru/api).

После регистрации личного кабинета провайдер предоставляет вам ключ API-ID и дальше отправка смс-сообщений сводится к формированию http-запроса следующего вида:

https://sms.ru/sms/send?api_id=[api_id]&to=79281234567&msg=’текст сообщения’&json=1

Пример отправки SMS запросом http:

Попытка
HTTPСоединение = Новый HTTPСоединение(АдресСервера);
HTTPЗапрос = Новый HTTPЗапрос("https://sms.ru/sms/send?api_id="+API_ID+"&to="+
Телефон+"&msg="+ТекстСообщения+"&json=0");
HTTPОтвет = HTTPСоединение.Получить(HTTPЗапрос);
ТекстОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();

Отправлено = ?(HTTPОтвет.КодСостояния = "200", Истина, Ложь);
Исключение
Отправлено = Ложь;
КонецПопытки;

Скачать конфигурацию для смс-рассылки через SMS.ru можно здесь (//infostart.ru/public/663813/)

26 Comments

  1. molodoi1sneg

    Спасибо, взял на заметку.

    Reply
  2. kwazi

    еще один забыли: http://its.1c.ru/db/bspdoc#content:217:hdoc

    Reply
  3. sdn-1

    (2) kwazi, ок, спасибо за информацию, посмотрю обязательно

    Reply
  4. kwazi

    тот же Билайн проще пост запросом отправлять чем через почту.

    Reply
  5. OrsoBear

    При объеме рассылки 100000 смс в месяц справится ли модем.

    Иногда массово рассылаю задания по сотрудникам.

    Недавно появилась заморочка, у Мегафона проходят смс, отправленные только через их пулл. (для третьего способа)

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

    К примеру у меня уведомления об ошибках в отгрузках приходят от одного псевдонима,

    а задания от другого.

    Reply
  6. V_V_V

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

    Reply
  7. makaorel

    отличная идея, спасибо автору

    Reply
  8. maXon777

    (6) V_V_V, а подскажите сервис, если не сложно!

    Reply
  9. CSiER

    Ещё как подпункт для первого способа — установить в сети модем с web API (например, модель «Huawei — E303») — отправка смс / получение статистики через post/get.

    Reply
  10. DanilaDru

    (8) maXon777, к примеру мы используем http://danila.sms.ru/ (реферальная)

    Reply
  11. delete

    Неплохая статья)

    Жаль, что рассмотрена только отправка, без чтения.

    Не знаю как сейчас, раньше для отправки по smtp требовалось включить опцию получения таких сообщений на целевом номере (как способ защиты от спама)

    Reply
  12. agressor

    Спасибо автору

    Reply
  13. premierex

    Есть ещё способ отправки СМС через оператора сотовой связи посредством GSM модема.

    Посмотреть можно здесь: http://infostart.ru/public/84802/

    Reply
  14. bashirov.rs

    Интересная статейка. Беру на заметку. Спасибо за код)

    Reply
  15. mazahaka29

    а можно это сделать через сайт? (в интернете ведь есть много сайтов для бесплатного СМС)

    Reply
  16. sdn-1

    (16) mazahaka29, можно — есть готовые решения на инфостарте:

    http://infostart.ru/public/169628/

    http://infostart.ru/public/187886/

    Reply
  17. ToJIuK

    Здравствуйте. Попробовал второй способ отправки смс через Andriod 4.1.2 (Galaxy tab 2). но при попытке отсылки смс выходит ошибка(во вложении). с этой программой сталкиваюсь первый раз, кто нибудь победил данную задачу?

    Отсылаю не через 1с, а из Сформированного вручную CMD файла.

    Reply
  18. Diversus

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

    Могу порекомендовать так же и свое решение:

    Мульти рассылка СМС из 1С для типовых и не типовых конфигураций, на управляемых и обычных формах

    Reply
  19. echo77

    У кого-нибудь патч для Microsoft SMS sender есть, который делает так, что окно после отправки сообщения не появляется и не висит?

    UPD: только что сделал

    Reply
  20. maksa2005

    1. USB 3G-модем. САМЫЙ ДЕШЕВЫЙ СПОСОБ РЕАЛИЗАЦИИ.

    Реализовал механизм на 1с:Розница (Авто).

    Респект автору!

    Reply
  21. maksa2005

    (22) echo77, Этот не виснет.

    Reply
  22. Lesha1C

    если делать отправку через SMTP получается актуально только для версии 8.3 так как ssl в 8.2 не поддерживается?

    Reply
  23. flesh611

    Подскажите, как можно получить статус сообщения при отправке по SMTP через Билайн? В описании сказано, что это возможно с помощью STATUS <smsid>, а где вызвать этот статус не понятно

    Reply
  24. user631161_rollerdrom18

    (8) maXon777, https://www.smsprofi.ru/otpravka_sms_iz_1C.php пользуемся года 3, все нравится

    Reply
  25. Nizikov

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

    Reply
  26. Diversus

    Не знаю, не знаю… Лучше использовать специальные сервисы по отправке смс.

    Так будет и быстрее гораздо и эффективней.

    Мы сделали такой инструмент Мульти рассылка СМС из 1С поддерживает кучу всего среди которых можно выбрать.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *