Ver Mensaje Individual
  #1  
Antiguo 05-08-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Reputación: 21
burasu Va por buen camino
Post Adjuntar fichero por E-Mail usando outlook?

Hola amigos, tengo que hacer en mi aplicación una opción en la que el usuario pueda enviar los listados por correo electrónico. Este podrá hacerlo de dos formas, o bien usando la propia aplicación o bien usando el gestor de correos que tenga instalado en su equipo.

La primera forma la hago utilizando los componentes de FastNet y no tengo ningún problema, el problema lo encuentro con la otra.

Para abrir el Outlook(que sería mi caso) uso el siguiente código:

Código:
ShellExecute(Self.Handle, 'open', pChar('mailto:' + trim(eMail.Text+'?subject='+Asunto.Text)),nil, nil, SW_SHOWNORMAL);
El cual al cargar el Outlook ya me muestra tanto el correo de destino como el asunto del mensaje, pero que debo usar para adjuntar los ficheros. Creo recordar que hay una clausula de mailto que se llama attach o algo parecido pero no se si es esta la que debo usar.

En otra aplicación que hice, lo que hacia era convertir primero todo a un fichero *.ems y luego lo abria, pero me parece bastante lioso como para que sea la unica forma.

Ese código era el siguiente:

Código:
{/* PROCEDIMIENTO QUE GENERARÁ EL FICHERO EML QUE ABRIRÁ EL PROGRAMA CUANDO EL
    USUARIO DESEE GENERAR UN CORREO ELECTRÓNICO. */}
procedure TModuloCorreo.GenerarCorreo;
var
  FichCorreo : TextFile;
  i : Integer;
  Temporal : String;
begin

  AssignFile(FichCorreo, ExtractFilePath(ParamStr(0)) + '\ssemail.eml');
  Rewrite(FichCorreo);
  WriteLn(FichCorreo,'To: ' + ModuloDatos.BuscarCorreo);

  WriteLn(FichCorreo,'Subject: Enviar informe.');
  WriteLn(FichCorreo,'MIME-Version: 1.0');
  WriteLn(FichCorreo,'Content-Type: multipart/alternative;');
  WriteLn(FichCorreo,'	boundary="----=_NextPart_000_0007_01C2A047.FD5E40D0"');
  WriteLn(FichCorreo,'X-Priority: 3');
  WriteLn(FichCorreo,'X-MSMail-Priority: Normal');
  WriteLn(FichCorreo,'X-Unsent: 1');
  WriteLn(FichCorreo,'X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4920.2300');
  WriteLn(FichCorreo,'');
  WriteLn(FichCorreo,'This is a multi-part message in MIME format.');
  WriteLn(FichCorreo,'');
  WriteLn(FichCorreo,'------=_NextPart_000_0007_01C2A047.FD5E40D0');
  WriteLn(FichCorreo,'Content-Type: text/plain;');
  WriteLn(FichCorreo,'	charset="iso-8859-1"');
  WriteLn(FichCorreo,'Content-Transfer-Encoding: quoted-printable');
  WriteLn(FichCorreo,'------=_NextPart_000_0007_01C2A047.FD5E40D0');
  WriteLn(FichCorreo,'Content-Type: text/html;');
  WriteLn(FichCorreo,'	charset="iso-8859-1"');
  WriteLn(FichCorreo,'Content-Transfer-Encoding: quoted-printable');
  WriteLn(FichCorreo,'');
  WriteLn(FichCorreo,'<HTML><HEAD></HEAD><BODY>');
{/* Aquí procederemos a generar el fichero del formulario en sí. */}
  for i := 0 to (ModuloDatos.StrucFich.Count -1) do begin
    Temporal := ModuloDatos.DOS_a_Windows(ModuloDatos.StrucFich[i]);
    WriteLn(FichCorreo,ExaminarLineaCorreo(Temporal) + '<br>');
  end;
  WriteLn(FichCorreo,'</BODY></HTML>');
  WriteLn(FichCorreo,'');
  WriteLn(FichCorreo,'------=_NextPart_000_0007_01C2A047.FD5E40D0--');
  CloseFile(FichCorreo);  {/* Cerramos el fichero creado. */}
end;
Bueno espero sus respuestas, gracias
Responder Con Cita