Готовый скрипт Отправка СМС. Работа с TCP в скриптах

SARCAZM

Administrator
Команда форума
Благодаря возможности работы с TCP, мы, например, можем отправлять себе смс'ки прямо из скрипта с помощью сторонних сервисов.
Для этого разумеется нужно на этом сервисе сначала зарегаться, получить свой уникальный API ключ и пополнить счет. В данном примере использован sms.ru, тут есть возможность бесплатно отправлять смс на свой номер (указанный при регистрации). Однако, не думаю что стоит этим злоупотреблять, благо стоимость отправки там что-то около 25 копеек.

Готовая функция:
Код:
uses Classes, TCP;

function Send_SMS(text, api_key, mob_number: string): string;
var
  Head: TStringList;
  Socket: TTCPBlockSocket;
begin
  Head:= TStringList.Create;
  text:= Transform_Text(text);           // преобразумем текст сообщения


  // формируем запрос, который пошлем серверу
  Head.Add('GET /sms/send?api_id='+api_key+'&to='+mob_number+'&text='+text+' HTTP/1.1');           
  Head.Add('Accept: */*');
  Head.Add('Accept-Encoding: gzip, deflate');
  Head.Add('Host: sms.ru');
  Head.Add('Connection: Keep-Alive');
  Head.Add(#10#13);


  Socket:= TTCPBlockSocket.Create;      // создаем сокет
  Socket.Connect('sms.ru', '80');       // подключаемся к sms.ru
  if Socket.LastError <> 0 then Exit;   // если произошла ошибка, то выходим
  Socket.SendString(Head.Text);         // отправляем наш запрос


  Head.Free;                            // не забываем очищать память
  Socket.Free;
end;


function Transform_Text(s: string): string;
begin
  while (Pos(' ', s) > 0) do s[Pos(' ', s)]:= '+';
  result:= s;
end;


begin
  Send_SMS('Баюм реснулся! Бегом на 13ый!', '21****2D-****-****-****-****BA****40', '79210000000');
end.
 
Сверху