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";
Сообщение.Тема = "";
Сообщение.Тексты.Добавить(ТекстСообщения);
// подключить профиль
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль);
Исключение
Предупреждение (ОписаниеОшибки());
КонецПопытки;
// отправить почту
Попытка
Почта.Послать(Сообщение);
Почта.Отключиться();
Исключение
Предупреждение (ОписаниеОшибки());
КонецПопытки;
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/)