Hola,
El tema se ha tratado en ocasiones en los Foros. Escribí algo hace tiempo que me permitía hacer lo que dices (si es lo que creo) al menos en ThunderBird, pero, creo que tampoco va mal para OutLook, es cuestión de que lo pruebes. He escrito lo siguiente en un momento, solamente por que se vea la idea: siéntete libre de editar el código cuanto necesites, se precise o estimes oportuno. Ya dirás si te va bien o qué.
Código Delphi
[-]
uses
ShellApi;
procedure TForm1.Button1Click(Sender: TObject);
const
rsFormatoCuerpo = '&body="%S"';
rsFormatoAsunto = 'mailto:%S?subject=%S';
var
contador: integer;
cuerpoTemporal: TStrings;
cadenaEjecucion, destino, asunto, cuerpo: string;
begin
destino := 'correo@electronico.es';
asunto := 'Este es el asunto del correo';
cuerpo := 'Este es el cuerpo del correo' +#13#10+ 'en dos líneas distintas';
cuerpoTemporal := TStringList.Create;
cuerpoTemporal.Text := cuerpo;
cadenaEjecucion := Format(rsFormatoAsunto, [destino, asunto]);
for contador := 0 to cuerpoTemporal.Count-1 do
begin
cuerpoTemporal[contador] := Format(rsFormatoCuerpo, [cuerpoTemporal[contador]]);
end;
cadenaEjecucion := cadenaEjecucion + cuerpoTemporal.Text;
ShellExecute(Handle, 'open', PChar(cadenaEjecucion), nil, nil, SW_SHOWNORMAL);
cuerpoTemporal.Free;
end;