电子邮件中ShellExecute正文的空白字符

时间:2012-06-06 01:18:30

标签: delphi

我想使用ShellExecute,以便用户可以从他的默认电子邮件程序发送电子邮件; e.g。

const
  CRLF = '%0D%0A';
var
  Body: string;
begin
  Body := 'Information from my program'+CRLF+
      'that is put in the body of the email'; 
  ShellExecute(Application.Handle, 'open', PChar('?Subject=My Subject&Body=' +  
      Body),nil, nil, SW_SHOWNORMAL);

我想用信息列格式化正文。我怎样才能放入白色空间?似乎%20将适用于单个空间 - 有时,但它不适用于行的开头或几个连续的空格。这''也不起作用:(

1 个答案:

答案 0 :(得分:2)

在字符串中使用双引号(Chr(34)):

Body :=  #34 + 'Information from my program' + CRLF +
      'that is put in the body of the email' + #34; 
ShellExecute(Application.Handle, 'open', 
    PChar('?Subject=My Subject&Body=' + Body), nil, nil, SW_SHOWNORMAL);

要排列这些列,您可以尝试而不是使用制表符(Chr(9)) - 正如我在评论中所说,我无法让ShellExecute工作使用Thunderbird在Windows 7上使用mailto

Body :=  #34 + 'Information from my program' + CRLF +
      'that is put in the body of the email' + CRLF +
      'Col1'#9'Col2'#9'Col3' + #34; 

(使用Stuff嵌入#9'更多东西'是'Stuff' + #9 + 'More Stuff',BTW的缩写。