gifts2017

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

Опубликовал Дмитрий Шиндориков (sdn-1) в раздел Обмен - SMS рассылки

Три простых способа отправить 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:\ADB\platform-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"; 
Сообщение.Тема = ""; 
Сообщение.Тексты.Добавить(ТекстСообщения);

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Илья Коротков (molodoi1sneg) 20.11.14 13:24
Спасибо, взял на заметку.
2. Айрат Саттаров (kwazi) 20.11.14 15:22
3. Дмитрий Шиндориков (sdn-1) 20.11.14 15:30
(2) kwazi, ок, спасибо за информацию, посмотрю обязательно
4. Айрат Саттаров (kwazi) 20.11.14 15:32
тот же Билайн проще пост запросом отправлять чем через почту.
5. Alex Steiner (OrsoBear) 21.11.14 11:38
При объеме рассылки 100000 смс в месяц справится ли модем.
Иногда массово рассылаю задания по сотрудникам.
Недавно появилась заморочка, у Мегафона проходят смс, отправленные только через их пулл. (для третьего способа)

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

6. VVV (V_V_V) 22.11.14 23:30
Плотно использую специализированный сервис рассылки, ввиду смешных цен и дружелюбного API, но для альтернативных вариантов статья вполне годная. Спасибо автору за проделанную работу.
chizh.84; SinglCOOLer; gradi; +3 Ответить 1
7. makaorel 26.11.14 10:54
отличная идея, спасибо автору
8. Максим Сафонов (maXon777) 26.11.14 12:41
(6) V_V_V, а подскажите сервис, если не сложно!
9. Артём Андриянов (CSiER) 26.11.14 14:43
Ещё как подпункт для первого способа - установить в сети модем с web API (например, модель "Huawei - E303") - отправка смс / получение статистики через post/get.
10. Андрей Данилюк (DanilaDru) 27.11.14 11:52
(8) maXon777, к примеру мы используем http://danila.sms.ru/ (реферальная)
11. delete (delete) 27.11.14 18:56
Неплохая статья)
Жаль, что рассмотрена только отправка, без чтения.
Не знаю как сейчас, раньше для отправки по smtp требовалось включить опцию получения таких сообщений на целевом номере (как способ защиты от спама)
12. Олег (agressor) 28.11.14 09:45
13. Максим *** (premier) 28.11.14 10:30
Есть ещё способ отправки СМС через оператора сотовой связи посредством GSM модема.
Посмотреть можно здесь: http://infostart.ru/public/84802/
14. Рамиль Баширов (bashirov.rs) 01.12.14 07:47
Интересная статейка. Беру на заметку. Спасибо за код)
16. я я (mazahaka29) 10.12.14 13:11
а можно это сделать через сайт? (в интернете ведь есть много сайтов для бесплатного СМС)
17. Дмитрий Шиндориков (sdn-1) 10.12.14 13:32
(16) mazahaka29, можно - есть готовые решения на инфостарте:
http://infostart.ru/public/169628/
http://infostart.ru/public/187886/
19. Григорьев Анатолий (ToJIuK) 04.01.15 13:14
Здравствуйте. Попробовал второй способ отправки смс через Andriod 4.1.2 (Galaxy tab 2). но при попытке отсылки смс выходит ошибка(во вложении). с этой программой сталкиваюсь первый раз, кто нибудь победил данную задачу?
Отсылаю не через 1с, а из Сформированного вручную CMD файла.
Прикрепленные файлы:
20. Виталий Барилко (Diversus) 10.02.15 15:10
Все таки рассылка через смс через интернет шлюзы гораздо удобнее, чем описанный способ, если речь, конечно, идет о массовых рассылках.
Могу порекомендовать так же и свое решение:
Мульти рассылка СМС из 1С для типовых и не типовых конфигураций, на управляемых и обычных формах
22. Александр Крынецкий (echo77) 27.07.15 17:44
У кого-нибудь патч для Microsoft SMS sender есть, который делает так, что окно после отправки сообщения не появляется и не висит?

UPD: только что сделал
23. Максим Литвинов (maksa2005) 04.10.15 10:15
1. USB 3G-модем. САМЫЙ ДЕШЕВЫЙ СПОСОБ РЕАЛИЗАЦИИ.
Реализовал механизм на 1с:Розница (Авто).
Респект автору!
24. Максим Литвинов (maksa2005) 04.10.15 10:16
(22) echo77, Этот не виснет.
Прикрепленные файлы:
SMSSender.exe
25. Лёша Авто (Lesha1C) 19.10.15 16:38
если делать отправку через SMTP получается актуально только для версии 8.3 так как ssl в 8.2 не поддерживается?
26. Дмитрий Голованов (flesh611) 09.12.15 15:20
Подскажите, как можно получить статус сообщения при отправке по SMTP через Билайн? В описании сказано, что это возможно с помощью STATUS <smsid>, а где вызвать этот статус не понятно
27. Пользователь (user631161_rollerdrom18) 28.10.16 09:52
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа