Delphi и SMS!

Для начала необходимо разобраться как происходит отправка sms через инернет. Вы вводите номер телефона и текст сообщения, а затем отправляете. Через некоторое время сообщение будет доставлено адресату. Разные GSM операторы по-разному обрабатывают сообщения, у всех разные системы отправки, скрипты. Но целом, все одинаково. так, мы решили написать программу для отправки sms черезprocedure SendToMTS;
Интернет. Визуальную часть проектирования касаться не будем, а посмотрим как сформировать пакет для отправки оператору. Для примера возьмем МТС. Вся информация (номер телефона, текст сообщения, крайние время отправки) отсылается следующему скрипту:
http://www.mts.ru/cgi-bin/cgi.exe?function=sms_send
Информация хранится в следующих полях:
To= // номер телефона, вида 7xxxxxxxxxx  
Msg= // текст сообщения  
Hour=,Min=,Day=,Mon=,Year=   // крайние время отправки сообщения  

Теперь несложно написать процедуру отправки сообщения:
var  
  strPostData: string;  
  Data: Pointer;  
  URL, Flags, TargetFrameName, PostData, Headers: OleVariant;  
begin  
 strPostData := 'To='+PhoneNumField.text+'&Msg='   
                + TextField.Text +  
         '&Hour=20&Min=23&Day=22&Mon=02&Year=2002';  
  PostData := VarArrayCreate([0,Length(strPostData) -1], varByte);  
  Data := VarArrayLock(PostData);  
  try  
    Move(strPostData[1], Data^, Length(strPostData));  
  finally  
    VarArrayUnlock(PostData);  
  end;  
  URL:='http://www.mts.ru/cgi-bin/cgi.exe?function=sms_send';  
  Flags := EmptyParam;  
  TargetFrameName := EmptyParam;  
  Headers := EmptyParam; // TWebBrowser автоматически заполнит  
                         // эти заголовки соответствующими   
                         // значениями  
  form1.WebBrowser1.Navigate2(URL, Flags,   
 TargetFrameName, PostData, Headers);  
end;  

Все, что нам нужно это поместить на форму компоненту TWebbrowser. Через него и будет происходить отправка. Давайте теперь разберемся в том, что мы написали. Переменная strPostData хранит наименование полей и их содержимое в виду обычной строки. Но для корректной работы, мы должны преобразовать строку в нормальный вид. Всю информация мы преобразовали в переменную PostData. Переменной URL указываем путь к исполняемому скрипту; Flags оставим пустым, т.к. мы не будем открывать ни сайта, ни каких-то страниц; TargetFrameName также пуст; заголовки для пакета оставляем пустым, т.к компонента сама их заполнит и МТС не требует никакой верификации (как билайн, например). Конечным действием вызываем процедуру Navigate2 и отправляем сообщение. Описывать как заполнять поля время/дата не буду, т.к это очень просто.

P.S: Также стоит заметить, что разные операторы используют разные методы отправки (GET или POST). В нашем примере мы использовали метод POST. Если необходимо использовать GET, то просто оставьте значение переменной PostData пустым.
Теги:
SMS
Добавлено: 13 Июля 2018 08:23:19 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...