Отправка SMS
Если же все равно, как вводить (то есть с использованием капчи), то забираешь страничку из сайта нужного оператора сотовой связи, парсишь, вынимая картинку, показываешь картинку пользователю, он вводит и отправляешь нужным методом (get/post) назад на сервер оператора. Читаешь ответ, говоришь юзеру "Отправлено"(или "Неотправлено"...)
Вот так можно реализовать отправку смс, не только в дельфи, но и в других языках программирования, будь то перл, РНР, дельфи... фактически все, которые толком умеют работать с HTTP-протоколом, тот же VBA (с применением API и без них).
Решение первое – использовать мобильный телефон.
Подробно рассказывать можно долго, отправная точка для копания - АТ-команды (at+cmgs, at+cmgl), СОМ-порт и мобильный телефон. Мы такое писали, работает прекрасно, правда, надо разобраться с семибитной кодировкой.
Решение второе - использовать протокол SMPP
Делается это так. На сайте SMS Forum надо скачать спецификации версии 5.0 или версии 3.4, написать их рализацию (или скачать готовую, где-то наверняка есть), и подключаться к провайдеру. После этого можно совершенно спокойно слать сообщения прямо через аппаратуру провайдера. Если что, на протоколе SMPP 3.4 я потихонечку ем собаку уже полгода, так что при необходимости могу рассказать что знаю.
Решение второе - использовать протокол SMPP
Делается это так. На сайте SMS Forum надо скачать спецификации версии 5.0 или версии 3.4, написать их рализацию (или скачать готовую, где-то наверняка есть), и подключаться к провайдеру. После этого можно совершенно спокойно слать сообщения прямо через аппаратуру провайдера. Если что, на протоколе SMPP 3.4 я потихонечку ем собаку уже полгода, так что при необходимости могу рассказать что знаю.
Оприши поподробнее сам алгоритм работы по такому принципу, если есть исходники поделись :)
Я сам сейчас пишу подобную программу, ипользую Post, но заморочки с параметрами которые нужно передать серверу... Что бы использовать Post нужно разбираться в скрипте страницы, а вот с этим у меня небольшие проблеммы :(
procedure TForm1.Button1Click(Sender: TObject);
var
Fields: TIdMultiPartFormDataStream;
i:integer;
begin
{Ты посылаешь какие-то данные методом POST.
Поэтому нужно создать поля с данными (как если
бы ты отправлял форму из браузера)}
Fields := TIdMultiPartFormDataStream.Create;
with Fields do
begin
Fields.AddFormField('Phone', edit3.Text); //номер телефона
Fields.AddFormField('message', memo2.Text);//сообщение
Fields.AddFormField('code', edit2.Text);//код подтверждения
end;
{Создаём компонент и отправляем поток скрипту}
Memo1.Text := TIdHTTP.Create(Self).Post(Form1.Edit1.Text, Fields);
end;
вот что то типо этого должно получиться, но видимо я передаю не все параметры серверу(или не совсем точные...)
Если кому не лень(и разбирается!!!) помогите, оператор мегафон...
http://www.megafondv.ru/khb/sms/
P.S. я только учусь :)
Я сам сейчас пишу подобную программу, ипользую Post, но заморочки с параметрами которые нужно передать серверу... Что бы использовать Post нужно разбираться в скрипте страницы, а вот с этим у меня небольшие проблеммы
Исходники у меня на VB.NET, тебе они едва ли пригодятся, к тому же они не то чтобы проприетарные, но лично мне не принадлежат. Могу объяснить словами.
Протокол SMPP описывает взаимодействие двух хостов через TCP/IP-подключение. В принципе, это протокол прикладного уровня, поэтому запускать его можно поверх любого другого, который позволяет передать последовательность байт, чаще всего нижележащие протоколы - именно TCP/IP-стек. Принцип работы такой: устанавливается SMPP-сессия, происходит обмен сообщениями, при необходимости сессия поддерживается или разрывается. Вот цитаты из описания протокола:
and a SMS application system, such as a WAP Proxy Server, EMail Gateway or other Messaging Gateway.
.....
Using the SMPP protocol, an SMS application system called the ‘External Short Message Entity’ (ESME) may initiate an application layer connection with an SMSC over a TCP/IP or X.25 network connection and may then send short messages and receive short messages to and from the SMSC respectively. The ESME may also query, cancel or replace short messages using SMPP.
Как видно, веб-формы тут совершенно не при чём. Анализировать их программно означает строить надстройку над SMPP через HTTP, что к моей компетенции не относится. :)