Извените, может я не по адресу но всеже: Всем привет! У меня такой вопрос... Есть оператор мобильной связи IDC. Так же у них на серваке есть сайт для отправления СМС-Сообщений на телефоны подключенные к их компании... Вот ссылка: http://sms.idknet.com... Отсюда я и собираюсь отправлять СМС спам... Немного подумав как это проще сделать я нашел самый оптимальный вариант, и перешел к действиям... 1) Снифером HTTP Analyzer 5.0 отсканировал post запрос, который отправляется на файлик отбработчика: http://sms.idknet.com/sms.php Оказалось, что при отправке в обработчик поступают следующие параметры: prefix - Код оператора txtAddr - Номер телефона sum - Оставшееся колличество символов txtSM - Текст СМС Сообщения code - Код Капчи Submit2.x - Абсцысса кнопки "Отправить" (Оставить по умолчанию 35) Submit2.y - Ордината кнопки "Отправить" (Оставить по умолчанию 15) Submit2 - Надпись на кнопке (Оставить по умолчанию Отправить) Если все это дело отправлять Get запросом, то выходит что то вроде такова: http://sms.idknet.com/sms.php?prefix=777&txtAddr=12345&sum=160&txtSM=%C2%E2%E5%E4%E8%F2%E5+%F1%EE%EE%E1%F9%E5%ED% E8%E5.+%C4%EB%E8%ED%E0+%F1%EE%EE%E1%F9%E5%ED%E8%FF +%ED%E5+%E4%EE%EB%E6%ED%E0+%EF%F0%E5%E2%FB%F8%E0%F 2%FC+160+%F1%E8%EC%E2%EE%EB%EE%E2.&code=&Submit2.x=35&Submit2.y=15&Submit2=%CE%F2%EF%F0%E0%E2%E8%F2%FC Но после нескольких эксперементов, убедился, что Get запросом тут не обойтись, пишет, что незаполнены поля... Я стал юзать Post... КОД: procedure TForm1.Button2Click(Sender: TObject); var data: tstringlist; ssylka,STR: string; begin idhttp1.HandleRedirects:=true; STR:=idhttp1.Get('http://sms.idknet.com'); ssylka:='http://sms.idknet.com/sms.php'; data:=tstringlist.Create; data.Add('code='+edit3.text); data.Add('prefix='+st); data.Add('Submit2=Отправить'); data.Add('Submit2.x=27'); data.Add('Submit2.y=6'); data.Add('sum=160'); data.Add('txtAddr='+edit1.text); data.Add('txtSM='+edit2.text); str:=idhttp1.Post(ssylka, data); showmessage(idhttp1.URL.URI); if pos('class="bad"', STR) <> 0 then label5.Caption:='Сообщение неотправленно!' else label5.Caption:='Сообщение отправленно!'; end; И функция парса: function tform1.pars(T_, ForS, _T:string):string; var a, b: integer; begin Result:=''; if (T_ = '') or (ForS='') or (_T = '') then exit; a:=pos(T_,ForS); if a = 0 then exit else a:=a+length(T_); fors:=copy(ForS, a, length(ForS) - a + 1); if b > 0 then result:=copy(ForS,1,b-1); end; Все вродебы не плохо, но осталась одна нерешенная проблема!...(( Что делать с капчей... Подумав, я не стал заморачиваться, и решил просто сделать так, чтобы капча выводилась в программу, и я сам ее каждый раз вводил... Код примерно такой: procedure TForm1.Label3Click(Sender: TObject); var _Captcha : TJPEGImage; F_body : TMemoryStream; id, a:string; MyIdHTTP : TIdHTTP; begin MyIdHTTP:=TIdHTTP.Create(Self); F_body := TMemoryStream.Create; _Captcha:=TJPEGImage.Create; try MyIdHTTP.Get('http://sms.idknet.com/code.php', F_body); F_body.Seek(0, soFromBeginning); _Captcha.LoadFromStream(F_body); Image1.Picture.Assign(_Captcha); Image1.Width:=_Captcha.Width; Image1.Height:=_Captcha.Height; finally F_body.Free; _Captcha.Free; end; end; Сама капча находится на главной страничке http://sms.idknet.com, но вытаскивается туда она со странички http://sms.idknet.com/code.php Все вроде бы замечательно, капчу программа в себя вытаскивает нормально, но когда я ее ввожу (и ввожу правильно) всеравно отправка не идет, и пишет что капча введена неверно! Сначала не мог понять в чем прикол, потом догнал... Капча та каждый раз при обновление меняется... Я получается вытаскиваю капчу одну, ввожу ее, а отом при Post запросе вытаскивается страница целиком вместе с капчей, следовательно и капча меняется... Что мне делать в таком случае? Подскажите пожалуйста!!!