Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
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 04-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
No se exactamente como hacer lo que pides pero, si a la fuerza tienes que guardar dicho archivo, por que no haces una carpeta temporal, guardas el archivo, lo envias y lo borras en la misma ejecucion.
Es solo una idea.
Saludos
Responder Con Cita
  #2  
Antiguo 04-10-2006
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Se me acaba de ocurrir una locura:
Se podra guardar el archivo en una variable y una vez que se envie por el nombre de variable no por el nombre de archivo, esta se elimine de la memoria, ya se estoy alucinando.
Solo ideas.
Saludos
Responder Con Cita
  #3  
Antiguo 04-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 23
LucianoRey Va por buen camino
Si gracias, no se me habia ocurrido asi, que tonto soy, lo hare, muchas gracias.
Responder Con Cita
  #4  
Antiguo 04-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 23
LucianoRey Va por buen camino
Voy a intentar esa ultima, si me sale , les platico, gracias.
Responder Con Cita
  #5  
Antiguo 16-10-2006
LucianoRey LucianoRey is offline
Miembro
 
Registrado: feb 2004
Posts: 73
Poder: 23
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
  #6  
Antiguo 16-10-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 24
Bicho Va por buen camino
Hola, eso es exactamente lo mismo que hice para una aplicación en mi trabajo. Y resulta que esa aplicación hacía lo que pedías en un principio: enviar por correo el documento sin grabar en disco. Con la diferencia de que el documento era un Excel en lugar de un word, pero para el caso es lo mismo.
Era muy sencillo de hacer, y es que el mismo documento tiene un método que es SendMail y desde allí envia por correo con el documento en Excel como fichero adjunto, pero el problema reside en que el correo se envíaba a través del Outlook, con lo que pedía autorización por parte del usuario para poder enviar el correo.

Y lo que yo tenía que hacer era evitar eso, la autorización, no encontramos solución, pero si una alternativa. Guardar el fichero de forma temporal, enviar el correo con un componente Indy o SMTP con el documento adjunto y por ultimo borrar el fichero.

Y va estupendo. Aquí dejo la historia

Saludos
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cerrar Documento y no Word bbjb Servers 2 22-09-2006 00:19:01
Crear un documento Word destrukthor Servers 2 28-08-2006 14:05:44
modificar documento word sin el word instalado joaquinmol Servers 0 30-03-2005 19:58:54
Documento Word a PDF walace_soy Servers 0 23-11-2004 13:21:43
abrir un documento word marianaf Servers 3 22-12-2003 14:49:57


La franja horaria es GMT +2. Ahora son las 12:24:52.


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