y_a_p,
Cita:
Empezado por y_a_p
...tengo un programa para un pediatra...necesito que envie archivos por mail...
|
Cita:
Empezado por y_a_p
...utilizo delphi 7 y veo dentro de sus paquetes que tengo Indy10...
|
Cita:
Empezado por y_a_p
...acabo de descomprimir el archivo que me envias...me marca de nuevo esto...Undeclared identifier: 'TIdAttachment'...
|
Cita:
Empezado por ecfisa
¿ Será la versión de Indy ?
|
Revisa este código:
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation {$R *.dfm}
uses
IdSMTP, IdMessage, IdAttachmentFile;
procedure EnviarMensaje( sUsuario, sClave, sHost, sAdjunto, sAsunto, sDestino, sMensaje: String );
var
SMTP: TIdSMTP;
Mensaje: TIdMessage;
Adjunto: TIdAttachmentFile;
begin
SMTP := TIdSMTP.Create( nil );
SMTP.Username := sUsuario;
SMTP.Password := sClave;
SMTP.Host := sHost;
SMTP.Port := 25;
SMTP.AuthType := atDefault;
Mensaje := TIdMessage.Create( nil );
Mensaje.Clear;
Mensaje.From.Name := sDestino;
Mensaje.From.Address := sDestino;
Mensaje.Subject := sAsunto;
Mensaje.Body.Text := sMensaje;
Mensaje.Recipients.Add;
Mensaje.Recipients.Items[0].Address := sDestino;
if sAdjunto <> '' then
begin
if FileExists( sAdjunto ) then
Adjunto := TIdAttachmentFile.Create( Mensaje.MessageParts, sAdjunto );
end
else
Adjunto := nil;
try
SMTP.Connect;
except
raise Exception.Create( 'Error al conectar con el servidor.' );
end;
if SMTP.Connected then
begin
try
SMTP.Send( Mensaje );
except
raise Exception.Create( 'Error al enviar el mensaje.' );
end;
try
SMTP.Disconnect;
except
raise Exception.Create( 'Error al desconectar del servidor.' );
end;
end;
if Adjunto <> nil then
FreeAndNil( Adjunto );
FreeAndNil( Mensaje );
FreeAndNil( SMTP );
Application.MessageBox( 'Mensaje enviado correctamente.',
'Fin de proceso',MB_ICONINFORMATION );
end;
end.
El código del
Msg #5 y #9 compila y funciona correctamente en Delphi 7 con Indy 9,
en Indy 10 hay ligeros cambios como se señalan en el código anterior (Resaltados en color rojo) el cual fue probado en Delphi 2006 con Indy 10 y funciono correctamente según lo esperado con valores reales.
Espero sea útil
Nelson.