Delphi и SMS!

Delphi

Для начала необходимо разобраться как происходит отправка 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 пустым.



Опубликовал admin
11 Июл, Пятница 2003г.

Комментарии

Автор, ты извращенец, ведь только извращенный мозг будет использовать TWebBrowser. Ты вообще когда-нибудь слышал о TidHTTP? Который просто замечательно обрабатывает Get и Post запросы и работает намного быстрее, а главное - его не видно и прога мменьше весит, а вот ещё вдруг IE не установлен? как тогда TWebBrowser будет работать?
А вообще я надеялся у вас увидеть наоборот - получение СМС...




Программирование для чайников.