TSendMail.Execute возвращает True без отправки - PullRequest
0 голосов
/ 27 апреля 2020

Если я правильно понимаю, TSendMail должен использовать мой установленный почтовый клиент. Если я выполняю его на своей виртуальной машине, он возвращает «true» и дает ожидаемое сообщение о том, что мне нужно установить программу электронной почты.

Однако, если я запускаю программу на своей обычной машине (на которой Thunderbird установлено) TSendMail.execute возвращает "True", но Thunderbird не вызывается. Вот мой код:

procedure TfSendEmail.btnSendClick(Sender: TObject);
var
  aNode: PVirtualNode;
  Data: PRecipients;
  i: integer;
begin
  aNode := vstRecipients.GetFirst;
  i := 0;
  while (aNode <> nil) do
  begin
    Data := vstRecipients.GetNodeData(aNode);
    Mail.Recipients.Add;
    Mail.Recipients[i].DisplayName := Data.Name;
    Mail.Recipients[i].Address := Data.Email;
    inc(i);
    aNode := vstRecipients.GetNext(aNode);
  end;

  Mail.Attachments.Assign(lbAttachments.Items);

  Mail.Subject := edtSubject.Text;

  Mail.Text.Assign(mmoMsgText.Lines);

  if Mail.Execute then
  begin
    ShowMessage('Succeeded');
    //ModalResult := mrOk;
  end
  else
    MessageDlg('Sorry!. Could not send email.', mtError, [mbOK], 0);
end;

Использование Delphi 10.2.3 на полностью обновленных машинах Win10. Возможно, мое назначение получателя неверно. В любом случае, я не могу найти полных примеров использования, только неполный пример вложений из вики Embarcadero.

...