Я могу успешно отправить электронное письмо с помощью ShellExecute. Правильно указан адрес «Адрес», «Адрес отправителя» является правильным, а Subject является правильным. Тело письма правильное, за исключением того, что нет разрывов строк, и все выглядит как один абзац без разрывов строк. Почтовый клиент по умолчанию в моем случае - почтовая служба Windows 8.1.Как включить разрывы строк в сообщении электронной почты, созданном с помощью ShellExecute?
Мой вопрос: можно ли использовать ShellExecute, чтобы разрывы строк сохранялись? Я не собираюсь отправлять электронную почту напрямую с Indy. Все, что мне нужно сделать, это отправить электронное письмо на почтовый клиент по умолчанию и правильно отформатировать его.
procedure TForm1.Email1Click(Sender: TObject);
var
iGridTableItem: TcxCustomGridTableItem;
iName, iDate, iEmail, iSubject, iBody, iParam: string;
begin
iGridTableItem := cxGrid1DBTableView1.DataController.
GetItemByFieldName('EMail');
if iGridTableItem.EditValue <> null then
iEmail := iGridTableItem.EditValue;
iGridTableItem := cxGrid1DBTableView1.DataController.
GetItemByFieldName('Name');
if iGridTableItem.EditValue <> null then
iName := iGridTableItem.EditValue;
iGridTableItem := cxGrid1DBTableView1.DataController.
GetItemByFieldName('Date');
if iGridTableItem.EditValue <> null then
iDate := DateToStr(iGridTableItem.EditValue);
iSubject := 'ImageEn EBook';
iBody := 'Dear Mr. ' + iName + ',' + sLineBreak + sLineBreak +
'PayPal has advised me that you purchased xxxxx on ' + iDate +
'.' + ' Thank-you for your purchase.' + sLineBreak + sLineBreak + 'You may ' +
'download the xxx at' + sLineBreak +
'http://www.xxxxx.xxx/xxx/EBook/xxx101.zip' + sLineBreak +
'Best regards,' + sLineBreak + 'William Miller' + sLineBreak +
'Adirondack Software and Graphics ' + sLineBreak + 'Email: [email protected]'
iParam := 'mailto:' + iEmail + '?subject=' + iSubject + '&Body=' + iBody;
ShellExecute(Form1.Handle, 'open', PChar(iParam), nil, nil, SW_SHOWNORMAL);
end;
Спасибо, Реми ... ваше предложение отлично работает. – Bill