Ver Mensaje Individual
  #10  
Antiguo 16-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Reputación: 21
LucianoRey Va por buen camino
Gracias

Gracias por las ideas, aqui esta el codigo que originalmente me sirvio, por si les sirve.

Código:
unit UWord;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, OleServer, DB, DBTables;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Table1: TTable;
    DataSource1: TDataSource;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
uses UDMWord, IdSMTP, IdMessage;
procedure TForm1.Button1Click(Sender: TObject);
var
 Word: Variant;
 Documento: Variant;
 smtp: TIdSMTP;
 mail: TIdMessage;
 ArchivoE: String;
 ArchivoS: String;
begin
Word := CreateOleObject('Word.Application');
ArchivoE:='c:\Archivo\Algo.dot';  // mi plantilla de word
ArchivoS:='c:\Envio.doc';  //el archivo que voy a enviar
DataModule1.Table1.Active:=True;
DataModule1.Table1.First;
while not DataModule1.Table1.Eof do
 begin     //abajo, el paso de los datos a mis variables de word
    Documento:=Word.Documents.Open(ArchivoE);
   Documento.Variables.Add('numexp',DataModule1.Table1.FieldValues['numexp']);
   Documento.Variables.Add('asunto',DataModule1.Table1.FieldValues['asunto']);
   Documento.Variables.Add('fojas',DataModule1.Table1.FieldValues['fojas']);
   Documento.Fields.Update;
   Documento.SaveAs(ArchivoS);  //guardo el archivo
   Documento.Close(False);
  smtp:=TIdSMTP.Create(Self);
  mail :=TIdMessage.Create(Self);
  with smtp do
    begin
      Port := 25;
      Host := 'nombre del host';
//      AuthenticationType:=atLogin;
      UserName := 'nombre de mi cuenta de correo';
      PassWord := 'mi password de la cuenta de correo';
    end;
  with mail do
    begin                     //Con bcc para que no se vean todas las direciones a las que envio, bueno aqui solo a una cuenta pero ya adapte a mi necesidad
      BccList.Add;
      BccList[0].Name:='Nombre de la persona a quien envias';
      BccList[0].Address:='su direccion de correo';
      From.Address:= 'mi direccion de correo, como la de arriba';
      Subject:='Asunto del correo';
      Body.Text:='Cuerpo del mensaje';
    end;
    TIdAttachment.Create(mail.MessageParts,ArchivoS);  //adjunto el archivo
  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;
   DataModule1.Table1.Next;
  mail.Free;
  smtp.Free;
  DeleteFile(ArchivoS);
 end;
end;
Responder Con Cita