Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Enviar correos y adjuntar archivos... (https://www.clubdelphi.com/foros/showthread.php?t=23265)

Gabriel2 12-07-2005 14:12:29

Enviar correos y adjuntar archivos...
 
Tengo una aplicacion en Delphi 5 que genera un reporte con datos de los clientes los convierte en *.PDF y los envia adjunto por correo. Para esto utiliza los componentes FastNet. Ahora yo quiero pasar la aplicacion a Delphi 7 y necesito rehacer esta parte. Entonces fui a la pag. de los Indy, me baje un ejemplo de la version 9, Delphi 7 trae los INDY version 9, pero no funciona el ejemplo, el error es similar a cuando no se tiene intalado algun componente. Descargue la vers. mas reciente de los INDY 9, los instale y me paso lo mismo.

Lo que deseo es crear una aplicacion que me adjunte archivos y envie correos, alguien sabe como? Si es acompañado de un ejemplo mejor...

Saludos.Gracias.

dec 12-07-2005 15:12:33

Hola,

No sé hasta qué punto te valdría un ejemplo, puesto que si en este se hace uso de los componentes que mencionas tal vez tampoco te funcionaría...

Creo que podrías ser más explícito con el error que te aparece. Adjuntar un archivo a un "TIdMessage" (hablamos de los componentes Indy) no tiene mayor misterio:

Código Delphi [-]
 TIdAttachment.Create(email.MessageParts, 'C:\adjunto.zip');

Donde "email" es un objeto de tipo "TIdMessage". En la misma unidad (IdMessage.pas) en que se declara "TIdMessage" se encuentra también la clase "TIdAttachment".

dec 12-07-2005 15:29:43

Hola,

Esto no me va mal en Delphi 7 con Indy 9.

Código Delphi [-]
uses
   IdSMTP, IdMessage;
   
 procedure TForm1.Button1Click(Sender: TObject);
 var
   smtp: TIdSMTP;
   mail: TIdMessage;
 begin
   smtp := TIdSMTP.Create(Self);
   mail := TIdMessage.Create(Self);
   
   with smtp do
   begin
     Port := 25;
     Host := 'smtp.servidorcorreo.es';
     Username := '';
     Password := '';
   end;
   
   with mail do
   begin
     Recipients.Add;
     Recipients[0].Name := 'destinatario';
     Recipients[0].Address := 'correo@destinatario.com';
     From.Name := 'remitente';
     From.Address := 'correo@remitente.com';
     Subject := 'Asunto del correo';
     Body.Text := 'Cuerpo del correo';
   end;
   
   TIdAttachment.Create(mail.MessageParts, 'C:\adjunto.txt');
   
   smtp.Connect(30000);
   try
     try
       smtp.Send(mail);
     except
       on E: Exception do
         ShowMessage(E.Message);
     end;
   finally
     if smtp.Connected then
       smtp.Disconnect;
   end;
 
   mail.Free;
   smtp.Free;
 end;

mastergav 24-08-2006 04:50:18

agradecimiento
 
gracias, pude adjuntar los archivos.
¿como hago para subir al sitio todo el formulario completo con el codigo
para que lo utilice alguien mas cuando lo necesite?

dec 24-08-2006 06:07:38

Hola,

Podrías comprimir el o los archivos necesarios y adjuntar el archivo comprimido en un mensaje en este mismo Hilo. Fíjate al enviar el mensaje en el formulario de edición del mismo, abajo de los botones "enviar" y "vista previa", tienes lo necesario para administrar los archivos adjuntos al mensaje que luego puedes enviar.

yorgelis 06-03-2009 20:06:13

muy bueno
 
hermano de delphi me parece muy bueno tu ejemplo pero quiero que me ayudes en algo resulta ser que donde declaras las variables que pones
var
smtp: TIdSMTP;
mail: TIdMessage;
mi delphi que es el 7 tambien no me
reconoce la variable mail como el tipo ese que especificas
TIdMessage
por tanto la aplicacion no me funciona dime que puede ser
eso por que si es un componente que se encuentra en la paleta
de componentes de la Indy en mi delphi no viene o tengo que
agregar esa libreria?? si me puedes ayudar aqui estare gracias.

mastergav 08-03-2009 04:46:17

respuesta correo electronico en d7
 
aca te mando una zip con el ejemplo en d7

yorgelis 09-03-2009 15:50:19

correo
 
lo siento compañero pero el zip de donde lo puedo bajar?? no me das un vinculo ni nada semejante para la descarga de todas formas ya resolvi lo pricipal que era adjuntar un archivo y cargar el outlook express ahora lo que necesito es alguna forma de que el paso de cargar el outlook express me lo quite o sea con solo darle enviar dentro de la aplicacion automaticamente envie sin tener que cargar el outlook express
si me puedes ayudar ya sabes estare aqui y gracias por la ayuda.

JELIRM 25-11-2009 19:10:26

hola, yo tengo delphi 6 enterprise y este codigo no me funciona, existe algo diferente para esta version o las clases no funcionan aqui?

Estuardo18 29-11-2009 23:09:26

Cita:

Empezado por JELIRM (Mensaje 347426)
hola, yo tengo delphi 6 enterprise y este codigo no me funciona, existe algo diferente para esta version o las clases no funcionan aqui?

yo tambien tengo delphi 6 alguien nos puede ayudar? :eek: :o

jimmy_aei 08-10-2010 23:14:18

Enviar archivos adjuntos
 
que tal foro:

tengo un problema al tratar de enviar los archivos adjuntos, uso delphi 2009 y componentes indy 10.2 o los que vienen por default

si envia el ccorreo y todo, pero los archivos que llegan adjuntos vienen con extensión .dat, y eso es una lata, no se si a alguien ya le paso y que pudiera darm eun pocco de luz al respecto. añado mi codigo para enviar los correos:

with IdMessage do
begin
Body.Assign(dbMemo1.Lines);
From.Text := UserEmail;
ReplyTo.EMailAddresses := UserEmail;
Recipients.EMailAddresses := edtemailcte.Text; { To: header }
Subject := UserName; { Subject: header }
//Priority := TIdMessagePriority(cboPriority.ItemIndex); { Message Priority }
//CCList.EMailAddresses := edtCC.Text; {CC}
//BccList.EMailAddresses := edtBCC.Text; {BBC}
//if chkReturnReciept.Checked then
// begin {We set the recipient to the From E-Mail address }
// ReceiptRecipient.Text := From.Text;
// end
//else
// begin {indicate that there is no receipt recipiant}
ReceiptRecipient.Text := '';
// end;
end;
{authentication settings}
// case SmtpAuthType of
// 0: idSMTP.AuthType := atNone;
// 1: idSMTP.AuthType := atDefault; {Simple Login}
//end;
idSMTP.Username := SmtpServerUser;
idSMTP.Password := SmtpServerPassword;
{General setup}
idSMTP.Host := SmtpServerName;
idSMTP.Port := SmtpServerPort;
{now we send the message}
idSMTP.Connect;
try
idSMTP.Send(IdMessage);
finally
idSMTP.Disconnect;
MessageDlg('Correo enviado satisfactoriamente',mtInformation,[mbOk],0);
end;

Casimiro Notevi 09-03-2016 10:19:49

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)
Has incumplido un montón de normas de los foros, es normal, no lo sabías, por eso te indico que leas nuestra guía de estilo :)
Y después crea un hilo nuevo con tu duda, le pones un título descriptivo y explicas lo más detalladamente tu problema.

Y recuerda poner los tags al código fuente, ejemplo:



Gracias :)


Cita:

Empezado por superfile (Mensaje 503142)
ESTOY TRATANDO DE ENVIAR UN ARCHIVO POR CORREO CON DELPHI XE2 CON EL SIGUIENTE CODIGO Y ME GENERA UN ERROR
must issue a starttls command first
uses IdAttachmentFile;
procedure EnviarMensaje( sUsuario, sClave, sHost, sAdjunto, sAsunto, sDestino, sMensaje: String );
var
SMTP: TIdSMTP;
Mensaje: TIdMessage;
Adjunto: TIdAttachmentFile; //declaracion de la nueva variable
begin
SMTP := TIdSMTP.Create( nil );
SMTP.Username := sUsuario;
SMTP.Password := sClave;
SMTP.Host := sHost;
SMTP.Port := 587;//25;
//SMTP.AuthenticationType := atLogin;--indy9
SMTP.AuthType := satDefault;
// SMTP.AuthType := atlogin;
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 := TIdAttachment.Create( Mensaje.MessageParts, sAdjunto ); --indy9
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;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
EnviarMensaje( 'file_iscomop@hotmail.com', 'corazon12', 'smtp.live.com',
'C:\Temp\CFDI26.xml', 'Te envio mi documento',
'file_iscomp@hotmail.com', 'Adjunto archivo: factura' );
end;


dandyuno 08-11-2017 10:35:12

muy buenas, en el ejemplo primero al copiarlo en delphi 2010 me sale:

undeclare identifier TIdAttachment

y se subraya en rojo en esta linea
TIdAttachment.Create(mail.MessageParts, 'C:\adjunto.txt');

¿que ocurre? ¿me falta algo?
gracias

LuisHatake 29-01-2018 03:46:11

hola dec buenas noches, espero me puedan ayudar. yo estoy intentando enviar un documento de excel. esto es un parte de mi codigo

DATA.From.Address := username;
DATA.Recipients.EMailAddresses := totarget;
DATA.subject := subject;
DATA.body.text := body;
DATA.ContentType := 'application/ms-excel';
DATA.LoadFromFile('C:\archivo.xlsx');



SMTP.IOHandler := SSL;
SMTP.Host := 'smtp.gmail.com';
SMTP.Port := 587;
SMTP.username := username;
SMTP.password := password;
SMTP.UseTLS := utUseExplicitTLS;

SMTP.Connect;
SMTP.Send(DATA);
SMTP.Disconnect;

tambien he intentado con lo que sugieres pero me da el siguiente error:
Constructing instance of 'TIdAttachment' containing abstract method 'TIdAttachment.OpenLoadStream'
espero me puedan ayudar de ante mano muchas gracias. Saludos cordiales!

Casimiro Notevi 29-01-2018 10:23:35

Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

LuisHatake 08-02-2018 05:15:46

TIdAttachment no funciona en delphi 7 con indy 9. sabes como seria para adjuntar un archivo de excel.
de ante mano gracias!

Casimiro Notevi 08-02-2018 10:45:33

¿Cómo que no funciona?

LuisHatake 16-02-2018 04:57:41

Enviar archivo de excel por email
 
Hola gracias por responder. Mi problema es que no puedo enviar un archivo de excel adjunto.
El siguiente codigo lo utilizo y envio el correo electrónico a la perfección siempre y cuando quite esta linea: TIdAttachment.Create (DATA.MessageParts, '1.JPG');
no se como seria para adjuntar un archivo de excel. espero me puedan orientar, utilizo delphi xe7 y gracias!:)

Código Delphi [-]
procedure Gmail(username, password, totarget, subject, body: string);
var
  DATA: TIdMessage;
  SMTP: TIdSMTP;
  SSL: TIdSSLIOHandlerSocketOpenSSL;
begin
  SMTP := TIdSMTP.Create(nil);
  DATA := TIdMessage.Create(nil);
  SSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  SSL.SSLOptions.Method := sslvTLSv1;
  SSL.SSLOptions.Mode := sslmUnassigned;
  SSL.SSLOptions.VerifyMode := [];
  SSL.SSLOptions.VerifyDepth := 0;

  DATA.From.Address := username;
  DATA.Recipients.EMailAddresses := totarget;
  DATA.subject := subject;
  DATA.body.text := body;
  DATA.ContentType := 'text / plain';
  //TIdAttachment.Create(DATA.MessageParts, ruta);
  TIdAttachment.Create (DATA.MessageParts, '1.JPG');


  SMTP.IOHandler := SSL;
  SMTP.Host := 'smtp.gmail.com';
  SMTP.Port := 587;
  SMTP.username := username;
  SMTP.password := password;
  SMTP.UseTLS := utUseExplicitTLS;

  SMTP.Connect;
  SMTP.Send(DATA);
  SMTP.Disconnect;

  SMTP.Free;
  DATA.Free;
  SSL.Free;
end;

El error que obtengo es el siguiente.
[dcc32 Warning] Unit2.pas(66): W1020 Constructing instance of 'TIdAttachment' containing abstract method 'TIdAttachment.OpenLoadStream'
Gracias de nuevo

Chaja 16-04-2018 01:08:32

envio de correo
 
Hola Buscadno otra cosa vi este pos, aca le mando la rutina que uso desde que tenia delphi 5 y ahora uso XE5 y siempre me anduvo:

Código Delphi [-]
unit UCorreo;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, IdComponent, IdTCPServer, IdSMTPServer, IdBaseComponent,
  IdMessage, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP,
  ExtCtrls, ComCtrls, ActnList, Buttons, IdExplicitTLSClientServerBase,
  IdSMTPBase,IdAttachmentFile, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
  IdSSL, IdSSLOpenSSL,
  IdGlobal,
  IdException, IdSSLOpenSSLHeaders,StrUtils, System.Actions;

type
  TFormCorreo = class(TForm)
    smtp: TIdSMTP;
    Panel1: TPanel;
    ProgressBar1: TProgressBar;
    edDireccion: TEdit;
    Label1: TLabel;
    stBar: TStatusBar;
    SpeedButton1: TSpeedButton;
    ActionList1: TActionList;
    Enviar: TAction;
    Mail: TIdMessage;
    chbConfirmacion: TCheckBox;
    Label2: TLabel;
    edCopia: TEdit;
    edCuerpoMensaje: TEdit;
    Label3: TLabel;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    procedure smtpStatus(ASender: TObject; const AStatus: TIdStatus;
      const AStatusText: String);
    procedure smtpWork(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    procedure smtpConnected(Sender: TObject);
    procedure smtpDisconnected(Sender: TObject);
    procedure smtpWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCountMax: Integer);
    procedure EnviarExecute(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    FCorreoDestino,FCCopia,
    FCorreoOrigen,
    FNombreServidorCorreo,
    FNombreCuentaCorreo,
    FDestinatario,
    FRemitente,
    FAsunto,
    FClave,
    FAutenticacion,
    FCuerpoCorreo,
    FAdjunto:String;
    FPuerto:Integer;
  public
    { Public declarations }
  published
    property CorreoDestino:String Read FCorreoDestino write FCorreoDestino;
    property CCopia:String Read FCCopia write FCCopia;
    property CorreoOrigen:String Read FCorreoOrigen Write FCorreoOrigen;
    property NombreServidorCorreo:String Read FNombreServidorCorreo Write FNombreServidorCorreo;
    property NombreCuentaCorreo:String Read FNombreCuentaCorreo Write FNombreCuentaCorreo;
    property Remitente :String Read FRemitente write FRemitente;
    property Destinatario :String Read FDestinatario write FDestinatario;
    property Asunto:String Read FAsunto Write FAsunto;
    property Autenticacion:String Read FAutenticacion Write FAutenticacion;
    property CuerpoCorreo:String Read FCuerpoCorreo Write FCuerpoCorreo;
    property Puerto:Integer Read FPuerto Write FPuerto;
    property Adjunto:String Read FAdjunto Write FAdjunto;
    property Clave:String Read FClave Write FClave;

  end;

var
  FormCorreo: TFormCorreo;

implementation

{$R *.DFM}

procedure TFormCorreo.smtpStatus(ASender: TObject; const AStatus: TIdStatus;
  const AStatusText: String);
begin
  stBar.SimpleText:=AStatusText;
end;

procedure TFormCorreo.smtpWork(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
 ProgressBar1.Position:=AWorkCount;
end;

procedure TFormCorreo.smtpConnected(Sender: TObject);
begin
  stBar.SimpleText:='Conectando al servicio de correo...';
end;

procedure TFormCorreo.smtpDisconnected(Sender: TObject);
begin
  stBar.SimpleText:='Mensaje enviado...';
end;

procedure TFormCorreo.smtpWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCountMax: Integer);
begin
  ProgressBar1.Max:= smtp.MsgLineLength;
end;

procedure TFormCorreo.EnviarExecute(Sender: TObject);
var Aux:String;
begin
 // mail.Create(self);
//  CorreoDestino:=Trim(edDireccion.Text);
  CorreoDestino:=Trim(edDireccion.Text);
  if CorreoDestino='' Then
    Raise Exception.Create('Falta correo destino...');

  CCopia:=Trim(edCopia.Text);

  with smtp do
   begin
     Port     := Puerto;
     Host     := NombreServidorCorreo;
     Username := NombreCuentaCorreo;
     Password := Clave;
   end;

   with mail do
   begin
     Recipients.Add;
     Recipients[0].Name    := Destinatario;
     Recipients[0].Address := Trim(CorreoDestino);
     From.Name             := Remitente;
     From.Address          := CorreoOrigen;
     Subject               := Asunto;
     Body.Text             := edCuerpoMensaje.Text;
     if chbConfirmacion.Checked then
       ReceiptRecipient.Address  := CorreoOrigen;
     if Trim(CCopia)<>'' then
       begin
         //CCList.Clear;
         CCList.Add;
         CCList[0].Address :=Trim(FCCopia);
       end;
//      SaveToFile('C:\Correo_'+Destinatario,tRUE);
   end;
   Aux:=Copy(NombreServidorCorreo,pos('.',NombreServidorCorreo)+1,Length(NombreServidorCorreo));
   Aux:=Copy(Aux,1,pos('.',Aux)-1);

 //  smtp.IOHandler:=nil;
   if AnsiMatchStr(Aux,['gmail','hotmail'] ) then
     begin
       IdSSLIOHandlerSocketOpenSSL1.Port                  := puerto;
       IdSSLIOHandlerSocketOpenSSL1.Host                  := NombreServidorCorreo;
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method     := sslvTLSv1;
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := [];
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth:= 0;
       IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode       := sslmUnassigned;
       smtp.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
       SMTP.UseTLS    := utUseExplicitTLS;

     end;

   TIdAttachmentFile.create(mail.MessageParts, Adjunto);

   try
     smtp.Connect;
     try
       smtp.Send(mail);
     except
       on E: Exception do
         ShowMessage(E.Message);
     end;
   except
     ShowMessage('Coneccion a Servicio de correo interrumpida..');
     if smtp.Connected then
       smtp.Disconnect;
   end;
  Close;
  ProgressBar1.Position:=0;
end;

procedure TFormCorreo.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
  DeleteFile(Adjunto);
end;

procedure TFormCorreo.FormCreate(Sender: TObject);
begin
  AutoSize:=True;
  edDireccion.Text := FCorreoDestino;
  edCopia.Text     := FCCopia;
end;

procedure TFormCorreo.FormDestroy(Sender: TObject);
begin
  FormCorreo:=nil;
end;

procedure TFormCorreo.FormShow(Sender: TObject);
begin
  if NombreServidorCorreo='' then
    begin
      ShowMessage('Falta configurar el correo... ver en configuración local...');
      Close;
    end
  else
    begin
      if Autenticacion='S' Then
        smtp.AuthType:=satDefault
      else
        smtp.AuthType:=satNone;
      edDireccion.Text:=CorreoDestino;
    end;
  edCopia.Text        := Trim(CCopia);
  edCuerpoMensaje.Text:= CuerpoCorreo;
end;

end.

en el form use dos componentes de las Indiy uno que dice TidMessage y otro TidSMPT

y desde las pantalla que uso para enviar hago esto en un boton o lo que Uds,.Quieran

Código Delphi [-]
procedure TFormCtaCteVta.EnviarCorreoExecute(Sender: TObject);
begin
  if CDSMovCC.IsEmpty Then
    Raise Exception.Create(' No hay datos para mandar...');
  if not DirectoryExists(ExtractFilePath(ParamStr(0))+'Archivos Temporales') then
    CreateDir(ExtractFilePath(ParamStr(0))+'Archivos Temporales');
  
  frCtaCte.PrintOptions.Printer:=PrNomListados;
  frCtaCte.SelectPrinter;

  frCtaCte.LoadFromFile(DMMain_2.PathReportesLst+'\CtaCteVta.fr3');
  DMMain_2.QOpciones.Close;
  frCtaCte.Variables['Mascara']:=''''+Mascara+'''';

  frCtaCte.PrepareReport;

  frxPDFExport1.ShowDialog:=False;
  frxPDFExport1.FileName:=ExtractFilePath(ParamStr(0))+'Archivos Temporales\Resumen_'+edNombreCliente.Text+'.pdf';
  frCtaCte.Export(frxPDFExport1);
  frxPDFExport1.ShowDialog:=True;

  if Not(Assigned(FormCorreo)) Then
    FormCorreo:=TFormCorreo.Create(Application);

  DMMain_2.QOpciones.CLose;
  begin
    DMBuscadores.QBuscaCorreo.Close;
    DMBuscadores.QBuscaCorreo.ParamByName('Codigo').Value:=ceCliente.Text;
    DMBuscadores.QBuscaCorreo.Open;
    if Not(DMBuscadores.QBuscaCorreo.IsEmpty) Then
      FormCorreo.CorreoDestino:=DMBuscadores.QBuscaCorreoCORREOELECTRONICO.Value
    else
      FormCorreo.CorreoDestino:='';
    DMBuscadores.QBuscaCorreo.Close;
  end;
  FormCorreo.CorreoOrigen        :=DirCorreo;
  FormCorreo.Remitente           :=Remitente;
  FormCorreo.CCopia              :='';
  FormCorreo.edDireccion.Text    :=FormCorreo.CorreoDestino;
  FormCorreo.Destinatario        :=edNombreCliente.Text;
  FormCorreo.Puerto              :=Puerto;
  FormCorreo.NombreServidorCorreo:=NombreServidor;
  FormCorreo.NombreCuentaCorreo  :=NombreCuenta;
  FormCorreo.Clave               :=Clave;
  FormCorreo.Autenticacion       :=Autotenticacion;
  FormCorreo.Asunto              :='Resumen Cta.Cte - al '+ FormatDateTime('dd-mm-yy',hasta.Date);
  FormCorreo.Adjunto             :=ExtractFilePath(ParamStr(0))+'Archivos Temporales\Resumen_'+edNombreCliente.Text+'.pdf';
  FormCorreo.Show;

end;

Yo Uso FastReport lo que hago es enviar a pdf y luego lo adjunto

Espero que sirva

Luis Roldan
Mar del Plata
Argentina


La franja horaria es GMT +2. Ahora son las 02:21:42.

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