Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2005
Gabriel2 Gabriel2 is offline
Miembro
 
Registrado: Sep 2004
Posts: 108
Poder: 14
Gabriel2 Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 12-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: Dec 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.611
Poder: 27
dec Va camino a la famadec Va camino a la fama
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".
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #3  
Antiguo 12-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: Dec 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.611
Poder: 27
dec Va camino a la famadec Va camino a la fama
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;
__________________
David Esperalta
www.davidesperalta.com

Última edición por dec fecha: 12-07-2005 a las 15:34:21. Razón: (corrección del texto)
Responder Con Cita
  #4  
Antiguo 24-08-2006
mastergav mastergav is offline
Miembro
 
Registrado: Aug 2006
Posts: 10
Poder: 0
mastergav Va por buen camino
Thumbs up 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?
Responder Con Cita
  #5  
Antiguo 24-08-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: Dec 2004
Ubicación: Alcobendas, Madrid, España
Posts: 12.611
Poder: 27
dec Va camino a la famadec Va camino a la fama
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.
__________________
David Esperalta
www.davidesperalta.com
Responder Con Cita
  #6  
Antiguo 06-03-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: Jan 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 08-03-2009
mastergav mastergav is offline
Miembro
 
Registrado: Aug 2006
Posts: 10
Poder: 0
mastergav Va por buen camino
respuesta correo electronico en d7

aca te mando una zip con el ejemplo en d7
Responder Con Cita
  #8  
Antiguo 09-03-2009
yorgelis yorgelis is offline
Miembro
 
Registrado: Jan 2009
Posts: 20
Poder: 0
yorgelis Va por buen camino
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.
Responder Con Cita
  #9  
Antiguo 25-11-2009
JELIRM JELIRM is offline
Miembro
 
Registrado: Feb 2005
Ubicación: EL SALVADOR
Posts: 124
Poder: 14
JELIRM Va por buen camino
Unhappy

hola, yo tengo delphi 6 enterprise y este codigo no me funciona, existe algo diferente para esta version o las clases no funcionan aqui?
Responder Con Cita
  #10  
Antiguo 29-11-2009
Estuardo18 Estuardo18 is offline
Registrado
 
Registrado: Apr 2008
Ubicación: Guatemala(Centroamerica)
Posts: 8
Poder: 0
Estuardo18 Va por buen camino
Cita:
Empezado por JELIRM Ver Mensaje
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?
Responder Con Cita
  #11  
Antiguo 08-10-2010
jimmy_aei jimmy_aei is offline
Registrado
 
Registrado: Mar 2008
Posts: 6
Poder: 0
jimmy_aei Va por buen camino
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;
Responder Con Cita
  #12  
Antiguo 09-03-2016
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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 Ver Mensaje
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;
Responder Con Cita
  #13  
Antiguo 08-11-2017
dandyuno dandyuno is offline
Miembro
 
Registrado: Sep 2015
Posts: 18
Poder: 0
dandyuno Va por buen camino
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
Responder Con Cita
  #14  
Antiguo 29-01-2018
LuisHatake LuisHatake is offline
Miembro
 
Registrado: Oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
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!
Responder Con Cita
  #15  
Antiguo 29-01-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #16  
Antiguo 08-02-2018
LuisHatake LuisHatake is offline
Miembro
 
Registrado: Oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
TIdAttachment no funciona en delphi 7 con indy 9. sabes como seria para adjuntar un archivo de excel.
de ante mano gracias!
Responder Con Cita
  #17  
Antiguo 08-02-2018
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is online now
Moderador
 
Registrado: Sep 2004
Ubicación: En algún lugar.
Posts: 28.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Cómo que no funciona?
Responder Con Cita
  #18  
Antiguo 16-02-2018
LuisHatake LuisHatake is offline
Miembro
 
Registrado: Oct 2017
Posts: 14
Poder: 0
LuisHatake Va por buen camino
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
Responder Con Cita
  #19  
Antiguo 16-04-2018
Chaja Chaja is offline
Miembro
 
Registrado: Aug 2004
Ubicación: Mar del Plata
Posts: 216
Poder: 14
Chaja Va por buen camino
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
__________________
Luis A.Roldan (- Mar del Plata , Argentina- Te:472-4801)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:13:12.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi