SMS Delphi. Enviar SMS Delphi

SMS masivo desde 2002

enviar sms delphi

Enviar sms con delphi


Aquí puedes encontrar dos código de ejemplo para el envío de SMS en Delphi mediante la pasarela HTTP de envío de SMS de Altiria, el primero utiliza IdHTTP y el segundo emplea TnetHTTPClient.

Para integrar el envío de SMS con Delphi en tu propio software, lo más conveniente es leer la documentación técnica de envío de SMS, API SMS. El protocolo de comunicaciones más sencillo para implementar el envío de SMS es HTTP aunque también puedes utilizar web services.

Consulta nuestras tarifas de envío de SMS y pídenos más información. Te enviaremos los datos para que puedas probar el servicio gratuitamente e integrarlo en tu código Delphi.

Los siguientes códigos son ejemplos funcionales que han sido probados con éxito pero pueden resultar incompleto para integrar el envío de SMS con Delphi. Para solucionar cualquier incidencia, se debe consultar la especificación técnica.

Código de ejemplo utilizando IdHTTP:

program DelphiHTTP1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Classes, IdHTTP,System.WideStrUtils;

var
  DResultado,SUrl : String;
  Parametros : TStringList;
  IdHTTP1: TIdHTTP;

begin
//Usando IdHTTP de Indy
 try
   //Se fija la URL sobre la que enviar la petición POST
   //Como ejemplo la petición se envía a www.altiria.net/sustituirPOSTsms
   //Se debe reemplazar la cadena '/sustituirPOSTsms' por la parte correspondiente
   //de la URL suministrada por Altiria al dar de alta el servicio o
   //solicitar una cuenta de prueba
   SUrl:='http://www.altiria.net/sustituirPOSTsms';
   //Compone el mensaje a enviar
   //XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema
   //que serán suministrados por Altiria al dar de alta el servicio o
   //solicitar una cuenta de prueba
   Parametros := TStringList.Create();
   Parametros.Add('cmd=sendsms');
   Parametros.Add('domainId=XX');
   Parametros.Add('login=YY');
   Parametros.Add('passwd=ZZ');
   Parametros.Add('dest=346xxxxxxxx');
   Parametros.Add('dest=346yyyyyyyy');
   Parametros.Add(UTF8Encode('msg=Mensaje de prueba'));
   //Remitente autorizado por Altiria al dar de alta el servicio.
   //Omitir el parametro si no se cuenta con ninguno.
   Parametros.Add('senderId=remitente');

   IdHTTP1:= TIdHTTP.Create(nil);

   //Se fija el tiempo máximo de espera para conectar con el servidor (5000)
   //Se fija el tiempo máximo de espera de la respuesta del servidor (60000)
   IdHTTP1.ConnectTimeout := 5000;
   IdHTTP1.ReadTimeout:=60000;

   IdHTTP1.Request.ContentType :='application/x-www-form-urlencoded';
   IdHTTP1.Request.Charset := 'UTF-8';
   IdHTTP1.Request.ContentEncoding := 'UTF-8';

   // Enviamos un mensaje, recibiendo en "DResultado" la respuesta del servidor
   DResultado:=IdHTTP1.Post(SUrl,Parametros);
   WriteLn(DResultado);

 except
   on E: Exception do
     if E.ClassName='EIdConnectTimeout' then
       WriteLn ('ERROR Connect Timeout')
     else if E.ClassName='EIdReadTimeout' then
       WriteLn ('ERROR Response Timeout')
     else
       Writeln(E.ClassName, ': ', E.Message);
 end;
 Parametros.Free;
 IdHTTP1.Free;
end.

Código de ejemplo utilizando TnetHTTPClient:

program DelphiHTTP2;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Classes, System.Net.HTTPClient, System.Net.HTTPClientComponent;
var
  SUrl : String;
  client : TNetHTTPClient;
  response : IHTTPResponse;
  Parametros : TStringList;
begin
 try
   client := TNetHTTPClient.Create(nil);
   client.ContentType :='application/x-www-form-urlencoded';
   //Como ejemplo la petición se envía a www.altiria.net/sustituirPOSTsms
   //Se debe reemplazar la cadena '/sustituirPOSTsms' por la parte correspondiente
   //de la URL suministrada por Altiria al dar de alta el servicio o
   //solicitar una cuenta de prueba
   SUrl:='http://www.altiria.net/sustituirPOSTsms';
   //XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema
   //que serán suministrados por Altiria al dar de alta el servicio o
   //solicitar una cuenta de prueba
   Parametros := TStringList.Create();
   Parametros.Add('cmd=sendsms');
   Parametros.Add('domainId=XX');
   Parametros.Add('login=YY');
   Parametros.Add('passwd=ZZ');
   Parametros.Add('dest=346xxxxxxxx');
   Parametros.Add('dest=346yyyyyyyy');
   Parametros.Add(UTF8Encode('msg=Mensaje de prueba'));
   //Remitente autorizado por Altiria al dar de alta el servicio o
   //solicitar una cuenta de prueba
   //Omitir el parametro si no se cuenta con ninguno.
   Parametros.Add('senderId=remitente');

   Response:=client.Post(SUrl,Parametros);

   if Response.StatusCode = 200 then
     WriteLn(Response.ContentAsString())
   else
     begin
       WriteLn('Código de error: ' + IntToStr(Response.StatusCode));
       WriteLn(Response.StatusText);
     end;
 except
   on E: ENetHTTPClientException do
     WriteLn ('ERROR Conexión.  ' + E.Message);

   on E: Exception do
     Writeln(E.ClassName, ': ', E.Message);
 end;
 Parametros.Free;
 Client.Free;
end.

Características adicionales del envío de SMS en Delphi

  • Remitente personalizado: Personalización en el envío de SMS con Delphi del remitente de origen por una cadena de texto, por ejemplo, el nombre de su empresa.(*)
  • Confirmación de entrega: Conozca la fecha y hora en la que se ha recibido el SMS enviado o las causas por las que no se ha recibido.
  • Sistema avanzado de control de crédito con aviso automático por email que impide quedarse sin crédito de envío de forma inesperada.(*)
  • Informes automáticos de envío de SMS y confirmación de entrega, permiten mantener un control periódico de los envíos de SMS en Delphi.
  • Posiblidad de reenvío de SMS pendientes por falta de crédito. Si realizó un envío de SMS mediante Delphi y no tenía crédito, los mensajes se quedan encolados en nuestros sistemas hasta que disponga de crédito, de forma que no necesita repetir el envío.

(*) La disponibilidad de la confirmación de entrega al usuario y del remitente personalizado depende de cada país, consúltenos para su país de interés.