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/)
Спасибо, взял на заметку.
еще один забыли:http://its.1c.ru/db/bspdoc#content:217:hdoc
(2) kwazi, ок, спасибо за информацию, посмотрю обязательно
тот же Билайн проще пост запросом отправлять чем через почту.
При объеме рассылки 100000 смс в месяц справится ли модем.
Иногда массово рассылаю задания по сотрудникам.
Недавно появилась заморочка, у Мегафона проходят смс, отправленные только через их пулл. (для третьего способа)
Также минус в том, что нельзя указать псевдоним для первых двух способов, от которого приходят смс.
К примеру у меня уведомления об ошибках в отгрузках приходят от одного псевдонима,
а задания от другого.
Плотно использую специализированный сервис рассылки, ввиду смешных цен и дружелюбного API, но для альтернативных вариантов статья вполне годная. Спасибо автору за проделанную работу.
отличная идея, спасибо автору
(6) V_V_V, а подскажите сервис, если не сложно!
Ещё как подпункт для первого способа — установить в сети модем с web API (например, модель «Huawei — E303») — отправка смс / получение статистики через post/get.
(8) maXon777, к примеру мы используемhttp://danila.sms.ru/ (реферальная)
Неплохая статья)
Жаль, что рассмотрена только отправка, без чтения.
Не знаю как сейчас, раньше для отправки по smtp требовалось включить опцию получения таких сообщений на целевом номере (как способ защиты от спама)
Спасибо автору
Есть ещё способ отправки СМС через оператора сотовой связи посредством GSM модема.
http://infostart.ru/public/84802/
Посмотреть можно здесь:
Интересная статейка. Беру на заметку. Спасибо за код)
а можно это сделать через сайт? (в интернете ведь есть много сайтов для бесплатного СМС)
(16) mazahaka29, можно — есть готовые решения на инфостарте:
http://infostart.ru/public/169628/
http://infostart.ru/public/187886/
Здравствуйте. Попробовал второй способ отправки смс через Andriod 4.1.2 (Galaxy tab 2). но при попытке отсылки смс выходит ошибка(во вложении). с этой программой сталкиваюсь первый раз, кто нибудь победил данную задачу?
Отсылаю не через 1с, а из Сформированного вручную CMD файла.
Все таки рассылка через смс через интернет шлюзы гораздо удобнее, чем описанный способ, если речь, конечно, идет о массовых рассылках.
Мульти рассылка СМС из 1С для типовых и не типовых конфигураций, на управляемых и обычных формах
Могу порекомендовать так же и свое решение:
У кого-нибудь патч для Microsoft SMS sender есть, который делает так, что окно после отправки сообщения не появляется и не висит?
UPD: только что сделал
1. USB 3G-модем. САМЫЙ ДЕШЕВЫЙ СПОСОБ РЕАЛИЗАЦИИ.
Реализовал механизм на 1с:Розница (Авто).
Респект автору!
(22) echo77, Этот не виснет.
если делать отправку через SMTP получается актуально только для версии 8.3 так как ssl в 8.2 не поддерживается?
Подскажите, как можно получить статус сообщения при отправке по SMTP через Билайн? В описании сказано, что это возможно с помощью STATUS <smsid>, а где вызвать этот статус не понятно
(8) maXon777,https://www.smsprofi.ru/otpravka_sms_iz_1C.php пользуемся года 3, все нравится
(19) Анатолий, у Вас пробел перед номером лишний, вообще беда в том, что текст сообщения не терпит пробелов, никак не могу победить это, кавычки не помогают.
Не знаю, не знаю… Лучше использовать специальные сервисы по отправке смс.
Мульти рассылка СМС из 1С поддерживает кучу всего среди которых можно выбрать.
Так будет и быстрее гораздо и эффективней.
Мы сделали такой инструмент