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
public
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
public
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.