Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 在Outlook中创建带有附件的邮件并显示_Delphi_Outlook_Mailing - Fatal编程技术网

Delphi 在Outlook中创建带有附件的邮件并显示

Delphi 在Outlook中创建带有附件的邮件并显示,delphi,outlook,mailing,Delphi,Outlook,Mailing,我想在Outlook中创建一封带有附件的邮件,并在发送之前显示它,但我想我已经尝试了在网上找到的几乎所有示例,但没有任何运气。 我可以使用Indy,但我非常希望使用Outlook来确保邮件是正确的,因为它是用于商业用途的 将地址、主题、邮件和附件作为参数,然后在发送邮件之前在Outlook中显示邮件的任何功能输入。请参阅 使用 科莫布; .. 过程显示邮件(地址、主题、正文:字符串;附件:TFileName); 变量 展望:油变型; 邮件:变体; 常数 olMailItem=$00000000;

我想在Outlook中创建一封带有附件的邮件,并在发送之前显示它,但我想我已经尝试了在网上找到的几乎所有示例,但没有任何运气。 我可以使用Indy,但我非常希望使用Outlook来确保邮件是正确的,因为它是用于商业用途的

将地址、主题、邮件和附件作为参数,然后在发送邮件之前在Outlook中显示邮件的任何功能输入。

请参阅

使用
科莫布;
..
过程显示邮件(地址、主题、正文:字符串;附件:TFileName);
变量
展望:油变型;
邮件:变体;
常数
olMailItem=$00000000;
开始
尝试
Outlook:=GetActiveOleObject('Outlook.Application');
除了
Outlook:=CreateOleObject('Outlook.Application');
结束;
邮件:=Outlook.CreateItem(olMailItem);
邮寄地址:=地址;
Mail.Subject:=主题;
Mail.Body:=Body;
如果是附件“”,则
Mail.Attachments.Add(附件);
邮件显示;
结束;
程序TForm1.按钮1单击(发送方:TObject);
开始
DisplayMail('mailaddress'、'subject'、'message'、'attachmentfile');
结束;

我还不确定我做错了什么,因为它与我一直使用的代码几乎相同,但没有运气。另一方面,您的代码可以正常工作。我想知道这是否与我一直在使用Outlook_TLB这一事实有关,但我看不出这应该做什么。您知道是否可以将请求读取收据和交付收据添加到代码中吗?对于收据读取请求,请检查属性并将其用作
Mail.ReadReceiptRequested:=True。。和
OriginatorDeliveryReportRequested
property.@OZ8HP-不客气。如果它回答了你的问题,你就可以找到答案。@Sertac Akyuz我还在为这个系统苦苦挣扎:-)我习惯了丹麦这里的一个网站,它使用起来更简单/更容易。但我想我找到了接受答案的方法。现在我正在扩展邮件发送以使用特定帐户。这在VBA中非常容易。
uses
  comobj;

..

procedure DisplayMail(Address, Subject, Body: string; Attachment: TFileName);
var
  Outlook: OleVariant;
  Mail: Variant;
const
  olMailItem = $00000000;
begin
  try
    Outlook := GetActiveOleObject('Outlook.Application');
  except
    Outlook := CreateOleObject('Outlook.Application');
  end;
  Mail := Outlook.CreateItem(olMailItem);
  Mail.To := Address;
  Mail.Subject := Subject;
  Mail.Body := Body;
  if Attachment <> '' then
    Mail.Attachments.Add(Attachment);
  Mail.Display;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DisplayMail('mailaddress', 'subject', 'message', 'attachmentfile');
end;