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);
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;
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;
type
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
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}
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);
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;
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 ?