delphi - 使用 MS Outlook 发送电子邮件不添加签名

标签 delphi email outlook delphi-2010 ole

我使用 Delphi RAD Studio 2010 和下一个代码来通过 Outlook 发送电子邮件:

procedure SendOutlookMail(email,subject,body,fileat:string);
const
  olMailItem = 0;
var
   vMailItem: variant;
   Outlook: OutlookApplication;
   NmSpace: NameSpace;
   Folder: MAPIFolder;
begin
  Outlook := CoOutlookApplication.Create;
  NmSpace := Outlook.GetNamespace('MAPI');
  NmSpace.Logon('', '', False, False);
  Folder := NmSpace.GetDefaultFolder(olFolderInbox);
  Folder.Display;

  vMailItem := Outlook.CreateItem(olMailItem);
  if email<>'' then  vMailItem.Recipients.Add(email);
  vMailItem.Subject := subject;
  vMailItem.Body := Body;
  vMailItem.Attachments.Add(fileat);
  vMailItem.Display(false);
end;

它会打开一条新的 Outlook 邮件并将其置于前面,只需按“发送”即可发送。没关系。问题是,使用此方法创建新电子邮件不会添加签名。如果我在 Ms Outlook 中创建新邮件,签名会自动添加。
我是否可以添加用户在 MS Outlook 中配置的签名? (无需将签名文本添加到“Body”字符串变量中)。提前致谢。

最佳答案

当您调用 MailItem.Display 或访问 MailItem.GetInspector 时,会添加签名。

首先调用MailItem.Display(此时将添加签名),然后将您的数据与现有正文合并。请注意,设置纯文本 Body 属性将消除格式,因此您需要使用 HTMLBody 属性。请记住,2 个 HTML 字符串不能简单地连接 - 读取 HTMLBody 属性,找到适当的插入位置(在 <body> 标记之后?),然后插入数据。

关于delphi - 使用 MS Outlook 发送电子邮件不添加签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24065385/

相关文章:

C# VSTO Outlook ItemSend事件执行顺序

delphi - TRibbon 不显示选项卡

delphi - 我可以使用通配符来比较字符串吗?

delphi - Delphi 2009改用Unicode(/UTF16)对可执行文件大小和内存占用量有什么影响(如果有)?

ruby-on-rails - Ruby on Rails - 需要在每周的特定时间将消息发送到电子邮件

excel - 从 Excel 回复 Outlook 邮件

delphi - TMEMO 中的多行添加

linux - Postfix 将所有收到的邮件收集到一个帐户中

c# - 从电子邮件地址获取域名

internet-explorer - Dynamics CRM 2011 Outlook 客户端和浏览器呈现