Если я правильно понимаю, 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.