Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2008
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Problemas con los INDY´s

Que tal amigos....

Estoy tratando de desarrollar una aplicacion que envie un e-mail con un archivo adjunto. Para esto uso Delphi 6 y obvio, estoy investigando como usar los Indys para realizar lo anterior.

Les explico mas lo que quiero hacer, tengo una tabla EMPLEADO la cual tiene un campo que almacena la direccion de correo electronico...que por cierto es un dominio de una depedencia del gobierno federal (en México), hagan de cuenta q la cuenta se compone mas o menos asi:empleado@liconsa.gob.mx. Bueno....quiero que esta aplicacion lance correo a ciertos empleados o a todos no importa eso, de manera automatica, ya tengo resuelto que la aplicacion se ejecute automaticamente, ahora me falta mandar los correos.

He estado visitando varios temas que hablan de como mandar e-mails, y me encontre codigos muy interesantes, los cuales trate de aplicar a lo q estoy desarrollando....pero existen algunas propiedades que no me salen en IdMessage...como los que siguen:

Código Delphi [-]
      IdMessage.From.Address  :=  edUser.Text;
      IdMessage.From.Name     :=  edName.Text;
      IdMessage.Body          :=  meBody.Lines;
      IdMessage.Subject       :=  edSubject.Text;
      IdMessage.Recipients.EMailAddresses       := edFor.Text;

Hice lo anterior....pero las propiedas "From", "Body", "Subject"...no me aparecen en el componente.....no sé como revisar la version de los Indys, pero no los he actualizado, desde q instale delphi.

En el uses....tengo esto:
Código Delphi [-]
unit Enviando;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, DB,
  IBCustomDataSet, IBQuery;

Bueno, mejor les paso lo que llevo....:

Código Delphi [-]
unit Enviando;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, IdMessage, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, DB,
  IBCustomDataSet, IBQuery;

type
  TfrmEnviando = class(TForm)
    Panel1: TPanel;
    ScrollBox1: TScrollBox;
    lblMensaje: TLabel;
    IdSMTP1: TIdSMTP;
    IdMessage1: TIdMessage;
    qryCorreos: TIBQuery;
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmEnviando: TfrmEnviando;

implementation
uses modBDEnvios;
{$R *.dfm}

procedure TfrmEnviando.FormShow(Sender: TObject);
begin
     idSMTP1.Host:='liconsa.gob.mx';
     idSMTP1.UserId:='MVARGAS';
     idSMTP1.Password:='';
     if not idSMTP1.Connected then
         idSMTP1.Connect;
     idMessage.
end;

end.

Alguien me podria decir que sucece....?, Aparte le agrego en el uses dAttachmentFile y marca un error, que no localiza el DCU de este archivo...ahi ya se que me falta....realice busqueda en el disco duro...y nada.

talvez sea la version de los Indys.

Dentro de la empresa utilizamos una aplicacion para enviar correos (GroupWise), y lo que quiero hacer es....que la aplicacion les mande el correo para que lo puedan revisar en el GroupWise.

Si necesitan mas informacion...me comentan.

Les paso el codigo q me encontre...

Código Delphi [-]
unit SendMail;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, StdCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, IdMessage, IdAttachmentFile;

type
  TSendMailFrm = class(TForm)
    GroupBox1: TGroupBox;
    edFor: TEdit;
    Label1: TLabel;
    edSubject: TEdit;
    Label2: TLabel;
    meBody: TMemo;
    Label3: TLabel;
    btSend: TButton;
    btClose: TButton;
    IdSMTP: TIdSMTP;
    IdMessage: TIdMessage;
    OpenDialog: TOpenDialog;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btCloseClick(Sender: TObject);
    procedure btSendClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  SendMailFrm: TSendMailFrm;

implementation

uses ConfMail;

{$R *.dfm}

procedure TSendMailFrm.btSendClick(Sender: TObject);
begin
  if ConfMailFrm.ShowModal = mrOk then
  begin
    with ConfMailFrm do
    begin
      IdSMTP.Host     :=  edServer.Text;
      IdSMTP.Username :=  edUser.Text;
      IdSMTP.Password :=  edPassword.Text;
      if not IdSMTP.Connected then
        IdSMTP.Connect;

      IdMessage.From.Address  :=  edUser.Text;
      IdMessage.From.Name     :=  edName.Text;
      IdMessage.Body          :=  meBody.Lines;
      IdMessage.Subject       :=  edSubject.Text;
      IdMessage.Recipients.EMailAddresses       := edFor.Text;

      if OpenDialog.Execute then
        TIdAttachmentFile.Create(IdMessage.MessageParts, OpenDialog.FileName);

      IdSMTP.Send(IdMessage);
    end;
  end;
end;

procedure TSendMailFrm.btCloseClick(Sender: TObject);
begin
  Close;
end;

procedure TSendMailFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action  :=  caFree;
end;

end.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola mRoman, la unit IdAttachmentFile pertenece a las Indy 10, seguramente tienes una versión mas antigua.

Donde en vez de utilizar TIdAttachmentFile es TIdAttachment sin añadir ninguna unidad en uses.

Código Delphi [-]
.....
TIdAttachment.Create(IdMessage.MessageParts, OpenDialog.FileName);
....

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 15-10-2008
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Gracias CARO por tu respuesta....y por tu orientacion.

Ya supe como ver la version que tengo de los componentes Indy...tengo la 8.0, pregunta para todos....trabajo con Delphi 6, creen que si actualizo a la Version 9 o 10 trabaje bien con delphi 6?

Gracias....Caro y a los demas que me ayuden.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #4  
Antiguo 15-10-2008
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
idMessage...corregido!

Cita:
Empezado por Caro Ver Mensaje
Hola mRoman, la unit IdAttachmentFile pertenece a las Indy 10, seguramente tienes una versión mas antigua.

Donde en vez de utilizar TIdAttachmentFile es TIdAttachment sin añadir ninguna unidad en uses.

Código Delphi [-]
.....
TIdAttachment.Create(IdMessage.MessageParts, OpenDialog.FileName);
....

Saluditos
Listo....!!! ya salieron las propiedades, resulta que estaba tecleando mal el nombre del componente, tenia esto "idMessage", y esto es incorrecto ya que el componente le deje en la propiedad "name" el nombre que sugiere, que es el de "idMessage1"....o sea me hacia falta el 1....QUE BABAS !!!...asi pasa cuando estas tanto rato en esto....errores tan absurdos como este son los que no te dejan ver el error propiamente.

Ahora marca este error....

EIdProtocolReplyError

Les paso el codigo que tengo....
Código Delphi [-]
procedure TfrmEnviando.FormShow(Sender: TObject);
begin
     frmMenuE.Timer1.Enabled:=False;
     qryCorreos.Close;
     qryCorreos.Open;
     idSMTP1.Host:='empresa@gob.mx';
     idSMTP1.UserId:='MVARGAS';
     idSMTP1.Password:='';
     if not idSMTP1.Connected then
         idSMTP1.Connect;
//     TIdAttachment.Create(idMessage1.MessageParts,'c:\numeralia.xls');
     idMessage1.From.Address:='empleado@empresa.gob.mx';
     idMessage1.From.Name:='Miguel';
     idMessage1.Body.Add('Numeralia-2008');
     idMessage1.Subject:='SIDIST Liquida-NUMERALIA';
     idMessage1.Recipients.EMailAddresses:=qryCorreos.fieldbyname('DIRECCION_EMAIL').AsString;
     TidAttachment.Create(idMessage1.MessageParts,'c:\numeralia.xls');
     idSMTP1.Send(idMessage1);
end;

Estaré buscando que siginifica este error....

GRACIAS POR SUS APORTACIONES....
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 15-10-2008 a las 06:15:23.
Responder Con Cita
  #5  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, si te cambias a Indy 9 o 10 creo que no deberías tener problemas, sobre tu codigo, para enviar correo tienes que utilizar el protocolo smtp, donde indicas el Host desbes colocar el nombre de tu servidor smtp por el que quieres enviar correo.

Código Delphi [-]
 ............
 idSMTP1.Host:='empresa@gob.mx'; //tendría que ser algo asi 'smtp.gob.mx'
...............

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 15-10-2008
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Ok...gracias....por tu orientacion....verificare como se llama el HOST....

Fijate, que ya pude hechar a andar el programa, pero me marca un error en el socket...

Socket Error #11001...seguire buscando el porq de este error.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #7  
Antiguo 15-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Socket Error #11001...
Seguramente el error completo es "Socket Error #11001 Host not found" y te sale ese error porque el servidor smtp que colocas en la propiedad Host no existe.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 16-10-2008
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Fijate que no me dice eso, me dice Socket Error #11060 Connection timed out, ....

Tu o alguien sabe cual es el host para hotmail?, para realizar un ejemplo y mandarme un correo a esa cuenta?

Gracias Caro por tu apoyo....
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con Indy 9 y Proxy ainamr C++ Builder 0 03-10-2008 10:02:06
Problemas con INDY m@kio Varios 6 20-06-2005 15:58:28
Problemas al descargar un Mail con los Indy Fizban Internet 8 08-09-2004 23:05:48
Problemas SMTP (Indy, Delphi 7) ikerzubi Internet 1 28-07-2004 18:35:15
Problemas con las indy Novás Internet 3 07-05-2004 16:36:00


La franja horaria es GMT +2. Ahora son las 12:55:56.


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
Copyright 1996-2007 Club Delphi