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