Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите с отправкой sms [D7]


mm0 ©   (2007-04-11 17:12:00) 

Написал код, который должен отправлять SMS сообщения на мтс( http://sms.mts.ru/),
Данные на сервер мтс уходят,а мтс отправлять не хочет.
Он должен писать - "ваше сообщение успешно отправлено",а он присылает опять страницу с отправкой.
Эксперементирова,в параметрах отправки разное время задавал,даже брал с самой страницы отправи sms - нехочет.

может как-то параметр p(POSTDATA) задал не верно????

Код:

IdHTTPCORE: TIdHTTP; - компонент Indy в Delphi

var p,url_:string
__PostData:TStringList;
__ResData:string;
dt:TDateTime;
xt:TSystemTime;
F:Text;
begin
   ....

   получение картинки http://sms.mts.ru/pic.aspx
   можно для теста открыть ее в InternetExplorer и
   в delphi,через поле ввода,задать code.
   ....

   dt:=Now;
   dt:=IncHour(dt,1);
   DateTimeToSystemTime(dt,xt);
   sMin:=IntToStr(xt.wMinute); //sMin:=Format('%.2d',[xt.wMinute]);
   sHour:=IntToStr(xt.wHour);// sHour:=Format('%.2d',[xt.wHour]);
   sd:=IntToStr(xt.wDay); //sd:=Format('%.2d',[xt.wDay]);
   sm:=IntToStr(xt.wMonth);// sm:=Format('%.2d',[xt.wMonth]);
   sy:=IntToStr(xt.wYear);// sy:=Format('%d',[xt.wYear]);

   p:='ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$ddPrefix='+Prefix+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$txtMsisdn='+num+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$tbMessage='+msg+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$ddHour='+sHour+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$ddMinutes='+sMin+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$dpDate_day='+sd+  
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$dpDate_month='+sm+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$dpDate_year='+sy+
      '&ctl00$ctl08$ctl00$ctl00$ctl00$ctl04$ctl00$ctl00$qmSmsSend1$tbCode='+code;
 url_:=' http://sms.mts.ru/live/smsSending.aspx?sms=1&page.id=22847';
 __PostData.Clear;
 __PostData.Add(p);
 __ResData:=FrmMain.IdHTTPCORE.Post(url_,__POSTDATA);
 AssignFile(F,'out.htm');
 ReWrite(F);
 Write(f,__ResData);
 CloseFile(F);
 ...
-----------


G_M_S   (2007-05-22 12:09:00) [1]


> передаешь в функцию строку, которую надо перекодировать,
>  фун-ция вовращает тебе строку


Исчо адин велосипед изобретен... Подключаем модуль IdURI и пишем:

params := TidURI.ParamsEncode('Маи параметры');


> mm0   (11.04.07 17:12) 
> Написал код, который должен отправлять SMS сообщения на
> мтс


Я для отправки на МТС граббер на РНР писал. Путь, который ты выбрал для отсылки - тупиковый, т.к. ты не сможешь в полной  мере воспроизвести работу скриптов на клиенской части и набор параметров, передаваемый сервером. Тебе нужно:

1) загрузить оригинал формы отправки
2) выделить поля/картинку/кукисы
3) симулировать работу скриптов, заполняющих некоторые параметры

На МТС не .... сидят, через них даже с ручным вводом картинки не так-то просто отправить СМС.

ЗЫ: ты еще попробуй на Мегафон Северо-Запад отправить ;))))


Raptoridze   (2007-05-22 10:47:00) [2]

function kodir(s:string):string;
var ss:string;
i:integer;
begin
ss:='';
for i:=1 to length(s) do
ss:=ss+'%'+ansiuppercase(inttohex(ord(s[i]),2));
result:=ss;
end;

передаешь в функцию строку, которую надо перекодировать, фун-ция вовращает тебе строку


mm0   (2007-04-25 15:34:00) [3]

Да,действительно надо бы так сделать.....
а вот,к примеру сам текст сообщения:

tbMessage=hello%21%0D%0Akak+dela%3F%0D%0A%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21%0D%0A%D0%9A%D0%B0%D0%BA+%D0%B4%D0%B5%D0%BB%D0%B0%3F&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24

а чем можно такую перекодировку делать .Есть уже какие нибудь средства в Delphi.Полагаю, это какая-то интернетовская кодировка(типа KOI-8R).


Keni   (2007-04-19 22:20:00) [4]

вот что отправляется с этой страницы
при телефоне +79121234567,
сообщением
hello!
kak dela?
Привет!
Как дела?

дата: 0:4 27.12.07
code: kartinka


POST / HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-gsarcade-launch, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-icq, */*
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 192.168.4.63
Content-Length: 2060
Connection: Keep-Alive
Cache-Control: no-cache

__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE=%2FwEPDwUENTM4MWRknE91anYnp%2BiiPGa8ARdhmx2q3T8%3D&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24ddPrefix=7912&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24txtMsisdn=1234567&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24tbMessage=hello%21%0D%0Akak+dela%3F%0D%0A%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82%21%0D%0A%D0%9A%D0%B0%D0%BA+%D0%B4%D0%B5%D0%BB%D0%B0%3F&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24tbLen=37&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24ddHour=0&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24ddMinutes=4&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24dpDate=20071227&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24dpDate_string=12%2F27%2F2007&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24tbCode=kartinka&ctl00%24ctl08%24ctl00%24ctl00%24ctl00%24ctl04%24ctl00%24ctl00%24qmSmsSend1%24btnSend=%D0%9E%D1%82%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C&__EVENTVALIDATION=%2FwEWbQKJr6SyAwK71tDRAwLA5L%2BbDwK71rSqAQK71sD2CgK71uzRAwK71vi8CwK71oSHDAK71pDiBQK71rzNDgK71sipBgK71pTBBAK71 qCsDALjjLucBgLOpaWhCAKm76qsBgKm7%2FLmBQKm77rWDgLOpamADwLOpd3oCgK5ldafCwLctcyhAQKgpqB%2FAsaY3PUBAtmY3PUBAtiY3PUBAtuY3PUBAtqY3PUBAt2Y3PUBAtyY3PUBAt%2BY3PUBAs6Y3PUBAsGY3PUBAtmYnPYBAtmYkPYBAtmYlPYBAtmYqPYBAtmYrPYBAtmYoPYBAtmYpPYBA tmYuPYBAtmY%2FPUBAtmY8PUBAtiYnPYBAtiYkPYBAtiYlPYBAtiYqPYBArK3o20CrbejbQKst6NtAq%2B3o20CrrejbQKpt6NtAqi3o20Cq7ejbQK6t6NtArW3o20CrbfjbgKtt%2B9uAq23624CrbfXbgKtt9NuAq23324CrbfbbgKtt8duAq23g20CrbePbQKst%2BNuAqy3724CrLfrbgKst9duAqy3024CrLffbgKst9tuAqy3x24CrLeDbQKst49tAq%2B3424Cr7fvbgKvt%2BtuAq%2B3124Cr7fTbgKvt99uAq%2B3224Cr7fHbgKvt4NtAq%2B3j20CrrfjbgKut%2B9uAq63624CrrfXbgKut9NuAq63324CrrfbbgKut8duAq63g20CrrePbQKpt%2BNuAqm3724CqbfrbgKpt9duAqm3024CqbffbgKpt9tuAqm3x24CqbeDbQKpt49tAqf55p0JAvbOj6cM gq2cbipldHRNTRUHLFWFEHhuea4%3D


а у тебя что-то в POST как-то слишком мало инфы отправляется.
надо сгенерировать вот такой же текст, вылеленный жирным


mm0   (2007-04-16 15:43:00) [5]

проходивший мимо: а я не распознаю,а ввожу что нарисовано на картинке


проходивший мимо   (2007-04-15 16:04:00) [6]

а как ты распознаёшь, что написано на картинке?


Наверх

Титульная страница Поиск, карта сайта Написать письмо