Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tecnica para mandar SMS gratis (https://www.clubdelphi.com/foros/showthread.php?t=89828)

Ramsay 13-02-2016 17:59:15

Tecnica para mandar SMS gratis
 
Hola , estoy estudiando este codigo para mandar SMS gratis.

El post :

Código Delphi [-]

function TFEnviar1.sendMail(SMTP_Server:String; SMTP_Port:Integer; SMTP_AuthType:TIdSMTPAuthenticationType;
                  SMTP_UseTLS:TIdUseTLS; From_Mail, From_Name, From_Pass, To_List_Emails,
                  Mail_Subject:String; Body_Message:TMemo):String;
var
  IdMessage1: TIdMessage;
  IdSMTP1:TIdSMTP;
  IdSSLSocket: TIdSSLIOHandlerSocketOpenSSL;
  lista:TStringList;
  i:integer;
begin
  IdMessage1 := TIdMessage.Create(nil);
  IdSMTP1 := TIdSMTP.Create(nil);
  IdSSLSocket := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  //IdSSLSocket.OnStatusInfo := @OpenSSLStatusInfo;
  IdSMTP1.IOHandler := IdSSLSocket;
  idSMTP1.AuthType := SMTP_AuthType;
  idSMTP1.Host := SMTP_Server;
  idSMTP1.Port := SMTP_Port;
  idSMTP1.Username:= From_Mail;
  idSMTP1.Password:= From_Pass;
  idSMTP1.UseTLS := SMTP_UseTLS;
  IdMessage1.From.Text := From_Mail;
  IdMessage1.From.Name := From_Name;
  IdMessage1.Recipients.EMailAddresses := To_List_Emails;
  IdMessage1.Subject := UTF8ToAnsi(Mail_Subject);
  lista:= TStringList.Create;
  for i:=0 to Body_Message.lines.count-1 do
      lista.Add(Body_Message.lines[i]);

  IdMessage1.Body.Clear;
  IdMessage1.Body.Text := lista.Text;
  //CargaMensajeMail(From_Mail,To_List_Emails,UTF8ToAnsi(Mail_Subject),lista);
  try
      idSMTP1.Connect;
      application.processmessages;
      IdSMTP1.Send(IdMessage1);
  except
      on E: Exception do
        ShowMessage('Failed: ' + E.Message);
  end;
    idSMTP1.Disconnect();
    IdMessage1.Free;
    IdSMTP1.Free;
    IdSSLSocket.Free;
end;

Y los botones deben llamar a la función con los datos de nuestra cuenta de correo, para gmail es.
Código Delphi [-]


procedure TFEnviar1.BTNEnviarClick(Sender: TObject);

begin
    sendMail('smtp.gmail.com',587,satDefault,utUseExplicitTLS,'martin.artaza@gmail.com',
          Edeparte.text,'tuclave',edestino.Text,easunto.text, Memo1);
end;

y para mandar un SMS es (para argentina):

Código Delphi [-]
procedure TFEnviar1.Button1Click(Sender: TObject);
var direccion: string;
begin
direccion := earea.text + enumero.Text;
case cbCompania.ItemIndex of
  0: begin direccion := direccion + '@sms.ctimovil.com.ar'; end;
  1: begin direccion := direccion + '@sms.movistar.net.ar'; end;
  2: begin direccion := direccion + '@personal-net.com.ar'; end;
  end;
sendMail('smtp.gmail.com',587,satDefault,utUseExplicitTLS,'martin.artaza@gmail.com',
        Edeparte.text,'tuclave', direccion,easunto.text, Memo1);
end;


Bueno, le dejo el código completo.


Código Delphi [-]
unit UEnviarMail;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  IdHTTP, IdSMTP, IdMessage, IdPOP3, IdSSLOpenSSL,


  IdAttachment, IdAttachmentFile, IdIOHandler,
    IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdBaseComponent,
    IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
    IdMessageClient, IdSMTPBase,


  IdGlobal, IdCmdTCPServer;
{
,
  IdException, IdServerIOHandler;
}

type

  { TFEnviar1 }

  TFEnviar1 = class(TForm)
    BTNEnviar: TButton;
    Button1: TButton;
    Button2: TButton;
    CBCompania: TComboBox;
    EDestino: TEdit;
    Edeparte: TEdit;
    EAsunto: TEdit;
    EArea: TEdit;
    ENumero: TEdit;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Memo1: TMemo;
    procedure BTNEnviarClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { private declarations }
  public
    function sendMail(SMTP_Server:String; SMTP_Port:Integer; SMTP_AuthType:TIdSMTPAuthenticationType;
                      SMTP_UseTLS:TIdUseTLS; From_Mail, From_Name, From_Pass, To_List_Emails,
                      Mail_Subject:String; Body_Message:TMemo):String;
  end;

var
  FEnviar1: TFEnviar1;
implementation

{$R *.lfm}

{ TFEnviar1 }


{ TFEnviar1 }


function TFEnviar1.sendMail(SMTP_Server:String; SMTP_Port:Integer; SMTP_AuthType:TIdSMTPAuthenticationType;
                  SMTP_UseTLS:TIdUseTLS; From_Mail, From_Name, From_Pass, To_List_Emails,
                  Mail_Subject:String; Body_Message:TMemo):String;
var
  IdMessage1: TIdMessage;
  IdSMTP1:TIdSMTP;
  IdSSLSocket: TIdSSLIOHandlerSocketOpenSSL;
  lista:TStringList;
  i:integer;
begin
  IdMessage1 := TIdMessage.Create(nil);
  IdSMTP1 := TIdSMTP.Create(nil);
  IdSSLSocket := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  //IdSSLSocket.OnStatusInfo := @OpenSSLStatusInfo;
  IdSMTP1.IOHandler := IdSSLSocket;
  idSMTP1.AuthType := SMTP_AuthType;
  idSMTP1.Host := SMTP_Server;
  idSMTP1.Port := SMTP_Port;
  idSMTP1.Username:= From_Mail;
  idSMTP1.Password:= From_Pass;
  idSMTP1.UseTLS := SMTP_UseTLS;
  IdMessage1.From.Text := From_Mail;
  IdMessage1.From.Name := From_Name;
  IdMessage1.Recipients.EMailAddresses := To_List_Emails;
  IdMessage1.Subject := UTF8ToAnsi(Mail_Subject);
  lista:= TStringList.Create;
  for i:=0 to Body_Message.lines.count-1 do
      lista.Add(Body_Message.lines[i]);

  IdMessage1.Body.Clear;
  IdMessage1.Body.Text := lista.Text;
  //CargaMensajeMail(From_Mail,To_List_Emails,UTF8ToAnsi(Mail_Subject),lista);
  try
      idSMTP1.Connect;
      application.processmessages;
      IdSMTP1.Send(IdMessage1);
  except
      on E: Exception do
        ShowMessage('Failed: ' + E.Message);
  end;
    idSMTP1.Disconnect();
    IdMessage1.Free;
    IdSMTP1.Free;
    IdSSLSocket.Free;
end;


procedure TFEnviar1.BTNEnviarClick(Sender: TObject);

begin
    sendMail('smtp.gmail.com',587,satDefault,utUseExplicitTLS,'martin.artaza@gmail.com',
          Edeparte.text,'tuclave',edestino.Text,easunto.text, Memo1);
end;

procedure TFEnviar1.Button1Click(Sender: TObject);
var direccion: string;
begin
direccion := earea.text + enumero.Text;
case cbCompania.ItemIndex of
  0: begin direccion := direccion + '@sms.ctimovil.com.ar'; end;
  1: begin direccion := direccion + '@sms.movistar.net.ar'; end;
  2: begin direccion := direccion + '@personal-net.com.ar'; end;
  end;
sendMail('smtp.gmail.com',587,satDefault,utUseExplicitTLS,'martin.artaza@gmail.com',
        Edeparte.text,'tuclave', direccion,easunto.text, Memo1);
end;

procedure TFEnviar1.Button2Click(Sender: TObject);
begin
  close;
end;

Fin del post

Queria saber si esta tecnica para mandar sms gratis sigue funcionando porque este codigo se hizo en el 2009 o 2010. ¿ Esta tecnica sigue funcionando o esta obsoleta ?

AzidRain 14-02-2016 06:51:34

De flojera tu pregunta y de pésima reputación la misma. No existe ningún servicio que permita enviar SMS "gratis" en ningún lugar del mundo y los que como se ve que "investigaste" lo hacen son a cambio de apabullar al remitente con anuncios y demás basura no deseada. Hay cientos de proveedores serios del servicio que necesitas pero obviamente se cobra por el servicio pues no son enchiladas el implementar todo lo necesario para que funcione. Si eres uno de esos "desarrolladores" que 1.- Venden soluciones y se basan en todo lo que encuentren gratis en la red. 2.- Lo que no saben ni tienen idea de como se hace preguntan en foros especializados pues creo que te equivocaste de lugar mi amigo. Por cierto casi todos los proveedores de estos servicios como parte del pago te dan soporte a implementar su servicio...


La franja horaria es GMT +2. Ahora son las 13:41:15.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi