Ver Mensaje Individual
  #1  
Antiguo 15-10-2008
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 608
Reputación: 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