Enviar eMail desde el cliente de correo predetermidado

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í:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  ShellExecute(Handle, NULL, "mailto:", NULL, NULL, SW_NORMAL);
}

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

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   ShellExecute(Handle, NULL,"mailto:pepe@potamo.com", NULL, NULL, SW_NORMAL);
}

Incluso se puede incluir una línea de asunto:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShellExecute(Handle, NULL,"mailto:pepe@potamo.com?Subject=Hola"
        , NULL, NULL, SW_NORMAL);
}


Y hasta el texto del mensaje:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ShellExecute(Handle, NULL,"mailto:pepe@potamo.com?Subject=Hola&Body=Esto es sólo una prueba"
        , NULL, NULL, SW_NORMAL);
}


En definitiva, esta es una forma fácil de invocar al correo, e incluso se puede ampliar con un poco de imaginación « el texto del mensaje », asignandole el contenido de un RichEdit, Memo, … Tambien se puede asignar al Click de un TLabel de tal forma que cuando se pulse con el raton encima del .Caption, se invoque a la función Shell correspondiente.