Среда, 15.05.2024
Королевство Delphi
Главное меню
Статьи
Наш опрос
Как часто ви на этот сайт заходите?
Всего ответов: 159
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Сеть-интернет » Разные

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 пустым.

Получить ссылку на материал

Категория: Разные | Добавил: Барон (14.12.2011)
Просмотров: 1979 | Теги: sms, delphi | Рейтинг: 0.0/0
[ Пожертвования для сайта ] [ Пожаловаться на материал ]

Если вам помог материал сайта кликните по оплаченной рекламе размещенной в центре

Поиск
Категории раздела
Web-приложения [6]
Почта [12]
Работа с HTTP [4]
Робота с XML [4]
Сервер [3]
Разные [50]
Королевство Delphi © 2010-2024
Яндекс цитирования