¿Cómo invocar el programa de correo predeterminado para enviar un email?

Invocando el programa de correo predeterminado para enviar un email

Copyright © 2000 Ernesto De Spirito

LMD-Tools 6.1 - 300+ componentes para varias tareas de desarrollo!

Puede invocar la ventana "Nuevo Mensaje" o "Componer Mensaje" del programa de correo electrónico predeterminado usando la función API ShellExecute declarada en la unidad ShellApi, simplemente pasándole 'mailto:' como tercer parámetro (lpFile), tal como se muestra aquí:

uses ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Self.Handle, nil, 'mailto:', nil, nil, SW_NORMAL);
end;

También puede agregar la dirección de email del destinatario:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Self.Handle, nil,
    'mailto:eds2008 @ latiumsoftware.com',
    nil, nil, SW_NORMAL);
end;

Incluso se puede incluir una línea de asunto:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Self.Handle, nil,
    'mailto:eds2008 @ latiumsoftware.com?Subject=Test',
    nil, nil, SW_NORMAL);
end;

Y hasta el texto del mensaje:

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShellExecute(Self.Handle, nil,
    'mailto:eds2008 @ latiumsoftware.com' +
    '?Subject=Test&Body=Just testing the example',
    nil, nil, SW_NORMAL);
end;

 
NOTA: El protocolo mailto no soporta archivos adjuntos.

JfControls Library - para Delphi y C++ Builder