Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Email con los componentes Indy (https://www.clubdelphi.com/foros/showthread.php?t=16111)

Kamikaze 16-11-2004 16:32:49

Email con los componentes Indy
 
¿Alguien tiene algun codigo para enviar emails con los componentes indy?
Por que los componentes de fast net no los trae delphi 7
(si los trae pero no funcionan:( )

Muchas Gracias.


P.D.: Por si acaso lo sepa alguien yo lo pregunto...
¿Alguien sabe el puerto (25 creo) y la direccion de hotmail para enviar un email al propio hotmail? o ¿Alguien sabe de algun servidor que lo pueda hacer?.

roman 16-11-2004 16:42:32

Cita:

Empezado por Kamikaze
¿Alguien tiene algun codigo para enviar emails con los componentes indy?

En el hilo anterior que abriste al respecto de FastNet ya te había puesto un enlace a un hilo donde Nuria detalla los pasos a seguir.

// Saludos

Kamikaze 18-11-2004 18:20:38

Lo volvi a preguntar por.....
 
Lo volvi a preguntar por que me daba un monton de errores
(creo que el fallo esta en las uses pero intento buscar con el "Find in Files..." del menú "Search" y me salen una burrada.... pero por si acaso, las meti todas; (manera bestia) y me sigue saliendo los mismos errores...).

P.D.:Uso delphi 7, ¿sera por eso?.


Os dejo los mensajes de error para que los veais:

1º el codigo...

uses IdSmtp, IdMessage,

procedure TForm1.Button1Click(Sender: TObject);
begin
with idMessage do begin
// Cuerpo del mensaje.
Body.Clear;
Body.Add('Aqui añades el cuerpo del mensaje');
// Cuenta Origen.
From.Text := EMAILORIGEN;
// Cuenta Destino.
Recipients.EMailAddresses := EMAILDESTINO;
// Asunto del email.
Subject := ASUNTO;
// Prioridad del mensaje, ALTA.
Priority := TidMessagePriority(mpHighest);
// Coloco el archivo adjunto el cual enviar.
TidAttachment.Create(idMensage.MessageParts,ARCHIVOADJUNTO);
end;
with idSMPT do begin
// Configuro autentificación.
AuthenticationType := atLogin;
Username := USERNAME; // Nombre del usuario
Password := PASS; // la password
// Configuro el servidor SMTP.
Host := HOST;
Port := PUERTO;

try
Connect;
try
// Envio el mensaje.
Send(idMenssage);
finally
Disconnect;
end;
Msg('Enviado Correctamente');
except
// Capturo algunas excepciones que pueden ocurrir
ON E: EIdProtocolReplyError do begin
Msg('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o la password.');
end;
on E: EFOpenError do begin
Msg('No se ha podido enviar el email.' + #13 +
'Fichero Adjunto desconocido o erróneo.');
end;
on E: EIdSocketError do begin
Msg('No se ha podido enviar el email.'+ #13 +
'Host desconocido o incorrecto.');
end
else begin
Msg('Fallo en el envio de email');
end;
end;
if connected then Disconnect;
end
end.



2º Los errores:

[Error] Unit1.pas(30): '.' expected but 'DO' found
[Error] Unit1.pas(32): Undeclared identifier: 'Body'
[Error] Unit1.pas(33): Missing operator or semicolon
[Error] Unit1.pas(35): Missing operator or semicolon
[Error] Unit1.pas(37): Undeclared identifier: 'Recipients'
[Error] Unit1.pas(39): Undeclared identifier: 'Subject'
[Error] Unit1.pas(41): Undeclared identifier: 'Priority'
[Error] Unit1.pas(43): Undeclared identifier: 'idMensage'
[Error] Unit1.pas(43): 'END' expected but ',' found
[Error] Unit1.pas(45): Declaration expected but 'WITH' found
[Error] Unit1.pas(47): Undeclared identifier: 'AuthenticationType'
[Error] Unit1.pas(48): Undeclared identifier: 'Username'
[Error] Unit1.pas(49): Undeclared identifier: 'Password'
[Error] Unit1.pas(52): Undeclared identifier: 'Port'
[Error] Unit1.pas(55): Undeclared identifier: 'Connect'
[Error] Unit1.pas(58): Undeclared identifier: 'Send'
[Error] Unit1.pas(60): Undeclared identifier: 'Disconnect'
[Error] Unit1.pas(62): Invalid typecast
[Error] Unit1.pas(65): Undeclared identifier: 'EIdProtocolReplyError'
[Error] Unit1.pas(67): Invalid typecast
[Error] Unit1.pas(71): Invalid typecast
[Error] Unit1.pas(73): Undeclared identifier: 'EIdSocketError'
[Error] Unit1.pas(75): Invalid typecast
[Error] Unit1.pas(78): Invalid typecast
[Error] Unit1.pas(81): Undeclared identifier: 'connected'




:) Muchas gracias a todos los que habeis desperdiciado un poco de tiempo en mi... :)

TDworD 18-11-2004 20:00:58

Aqui te pongo un ejemplo de una función que tengo para enviar correos con componentes INDY

En este caso las variables globales que utilizan la función son lo siguiente:

G_HostMail: dirección del servidor SMTP, como el que viene en el outlook
G_UserMail: Usuario de conexión del correo
G_PasswordMail: Password del usuario de correo
G_ReplyMail: Dirección de respuesta del correo


Function TDM.EnviarCorreo(Para:String;Asunto:String;Contenido:TStrings):boolean;
begin
try
//Comprobamos los datos para enviar el correo
if Para=''
then Error('No se ha introducido un destinatario para el correo');
if G_HostMail=''
then Error('Debe introducir un Host de correo en la configuración');
if G_UserMail=''
then Error('Debe introducir un usuario de correo en la configuración');
//Configuramos el correo
Correo.Clear;
Correo.Body.AddStrings(Contenido);
Correo.Recipients.EMailAddresses:=Para;
Correo.Subject:=Asunto;
Correo.From.Text:=G_ReplyMail;
SMTP.Host:= G_HostMail;
SMTP.UserId:= G_UserMail;
SMTP.Password:= G_PasswordMail;
//Enviamos el correo
SMTP.Connect;
SMTP.Send(Correo);
SMTP.Disconnect;
result:=true;
except
result:=false;
end;
end;

Aprobecho el tema para hacer dos preguntillas (no se si ha salido ya en un post anterior, si es así perdonadme pero ahora no he podido mirarlo, decidmelo y lo buscaré a ver)

¿Como puedo enviar un anexo con el componente? ¿Compo puedo enviar el correo como HTML?

maeyanes 18-11-2004 21:46:36

Cita:

Empezado por Kamikaze
Os dejo los mensajes de error para que los veais:

1º el codigo...

Código Delphi [-]
uses IdSmtp, IdMessage,
 
procedure TForm1.Button1Click(Sender: TObject);
begin
with idMessage do begin // <-- [Error] Unit1.pas(30): '.' expected but 'DO' found. 
  // Estás usando el nombre de la unidad como nombre del componente u objeto.
    // Cuerpo del mensaje.
    Body.Clear;
    Body.Add('Aqui añades el cuerpo del mensaje');
    // Cuenta Origen.
    From.Text := EMAILORIGEN;
    // Cuenta Destino.
    Recipients.EMailAddresses := EMAILDESTINO;
    // Asunto del email.
    Subject := ASUNTO;
    // Prioridad del mensaje, ALTA.
    Priority := TidMessagePriority(mpHighest);
    // Coloco el archivo adjunto el cual enviar.
    TidAttachment.Create(idMensage.MessageParts,ARCHIVOADJUNTO);
  end;
with idSMPT do begin
   // Configuro autentificación.
   AuthenticationType := atLogin;
  Username := USERNAME;  // Nombre del usuario
  Password := PASS;  // la password
  // Configuro el servidor SMTP.
  Host := HOST;
  Port := PUERTO;
   
  try
    Connect;
    try
      // Envio el mensaje.
      Send(idMenssage);
    finally
      Disconnect;
    end;
    Msg('Enviado Correctamente');
  except
     // Capturo algunas excepciones que pueden ocurrir
    ON E: EIdProtocolReplyError do begin
      Msg('No se ha podido enviar el email.' + #13 +
          'Incorrecto el email o el usuario o la password.');
    end;
    on E: EFOpenError do begin
      Msg('No se ha podido enviar el email.' + #13 +
          'Fichero Adjunto desconocido o erróneo.');
    end;
    on E: EIdSocketError do begin
      Msg('No se ha podido enviar el email.'+ #13 +
          'Host desconocido o incorrecto.');
    end
    else begin
      Msg('Fallo en el envio de email');
    end;
  end;
  if connected then Disconnect;
end
end.

:) Muchas gracias a todos los que habeis desperdiciado un poco de tiempo en mi... :)

Resolviendo el error que te marqué... debes poder corregir casi todos los demás errores...


La franja horaria es GMT +2. Ahora son las 11:11:18.

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