delphi - TSendMail.Execute 返回 True 而不发送
问题描述
如果我理解正确,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;
在完全更新的 Win10 机器上使用 Delphi 10.2.3。也许我的收件人分配有问题。无论如何,我找不到任何完整的使用示例,只有 Embarcadero 的 wiki 附件中的不完整示例。
解决方案
推荐阅读
- ffmpeg - 如何解决ffmpeg视频合并抱怨参数不匹配的问题
- python - 根据列的值分组
- c# - System.IO.IOException:'该进程无法访问该文件,因为它正在被另一个进程使用。?
- java - Concat Publishers 与 Reractor 但处理元素不同
- javascript - 显示与 JSON 数据的“开放时间”日期/时间对齐的 div
- ios - Firebase Live Database Listener 首次读取/更新的区别?
- selenium - 在 colab for selenium 中安装和运行浏览器
- azure - Azure Api 管理重写 URL
- django - 夹层框架博客类别对象在模板上显示
- graph-databases - 如何管理 Gentics Mesh 中节点的状态?