Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Función para enviar un email - Delphi
Lenguaje de programación Borland Delphi


Con esta unidad realizada con Delphi 6 podremos enviar un email a uno o varios destinatarios. Permite la utilización de servidores de email que requieren autenticación para el envío. Para utilizarla añada una unidad a su proyecto, desde el menú "File" - "New" - "Unit" y copie el siguiente código en la unidad creada:

unit UnidadProcedimientos;

interface

uses IdHTTP, Classes, SysUtils, IdSMTP, IdMessage, windows;

function ConectarServidorEmail (servidor : string; usuario : string; puerto : integer) : boolean;
function enviarEmail (servidor : string; usuario : string; contrasena : string;
    puerto : integer; asunto : string; mensaje : TStringList; conAutenticacion : boolean;
    emisor : string; nombreEmisor : string; destinatario : string; cc : string) : boolean;

implementation

var
  compEnvioEmail : TIdSMTP;


//Función para conectar con el servidor de email
function ConectarServidorEmail (servidor : string; usuario : string; puerto : integer) : boolean;
begin
  compEnvioEmail := TIdSMTP.Create(nil);
  compEnvioEmail.host := servidor;
  compEnvioEmail.userid := usuario;
  compEnvioEmail.Port := puerto;
  try
    compEnvioEmail.connect;
  except
    compEnvioEmail.Free;
    ConectarServidorEmail := false;
  end;
end;

//enviar email
function enviarEmail (servidor : string; usuario : string; contrasena : string;
    puerto : integer; asunto : string; mensaje : TStringList; conAutenticacion : boolean;
    emisor : string; nombreEmisor : string; destinatario : string; cc : string) : boolean;
var
  compMensaje : TIdMessage;
  textoTemp : string;
  tipoAutenticacion : TAuthenticationType;
  envioCorrecto : boolean;
begin
  if conAutenticacion then
  begin
    compEnvioEmail.AuthenticationType := atLogin;
    compEnvioEmail.UserId := usuario;
    compEnvioEmail.Password := contrasena;
  end
  else
    compEnvioEmail.AuthenticationType := atNone;
  compMensaje := TIdMessage.Create (nil);
  compMensaje.From.Address := emisor;
  compMensaje.From.Name := nombreEmisor;
  compMensaje.Recipients.Add.Address := destinatario;
  compMensaje.CCList.Add.Address := cc;
  compMensaje.Body.AddStrings (mensaje);
  compMensaje.Subject := asunto;
  compMensaje.ReplyTo.Add.Address := emisor;
  envioCorrecto := true;
  try
    compEnvioEmail.Send(compMensaje);
  except
    envioCorrecto := false;
  end;
  compMensaje.Free;
  enviarEmail := envioCorrecto;
end;

end.
Un ejemplo de utilización:
...
  vtMensajeTexto := TStringList.Create;
  vtMensajeTexto.Add('Cuerpo del mensaje.');
  vtMensajeTexto.Add('');
  vtMensajeTexto.Add('');
  vtMensajeTexto.Add('');
  vtMensajeTexto.Add('Por AjpdSoft');
  if ConectarServidorEmail ('mail.servidor.com', 'usuario@ajpdsoft.com', 25) then
  begin
    if enviarEmail('mail.servidor.com', 'usuario@ajpdsoft.com', 'contraseña', 25,
        'El asunto del email', vtmensajeTexto, true, 'emaildelemisor@ajpdsoft.com', 
        'Nombre del emisor', 'destinatario@ajpdsoft.com, copiacarbon@ajpdsoft.com) then
      showmessage ('Mensaje enviado correctamente.')
    else
      showmessage ('El mensaje no se ha enviado.');
  end
  else
      showmessage ('No se ha podido conectar con el servidor de email.');
...




Publicado el: 2005-02-08

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A