![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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 |
|
#2
|
||||
|
||||
|
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 |
|
#3
|
|||
|
|||
|
Si gracias, no se me habia ocurrido asi, que tonto soy, lo hare, muchas gracias.
|
|
#4
|
|||
|
|||
|
Voy a intentar esa ultima, si me sale , les platico, gracias.
|
|
#5
|
|||
|
|||
|
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;
|
|
#6
|
||||
|
||||
|
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 |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|