我使用 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/