发送电子邮件与签名(Sending Email with signature)

2019-09-18 01:29发布

我一直在使用:

        ShellExecute(Self.Handle,
            nil, PCHAR(format('mailto:%s ?Subject=Assunto: &Body=',[_lEmails ])),
            nil,
            nil,
            SW_NORMAL);

发送电子邮件。 无正文文本,以便有自动签名在他们的电子邮件客户端的用户得到这些自动。

现在我想允许用户插入文本为好,但如果他们这样做文到达那里,但没有签名。 有没有一种方法来“强制”这一点。

谢谢

Answer 1:

您可以使用MAPI代替(该Messaging Applications Programming Interface ),它可以提供对电子邮件更好的控制,并允许之类的东西附件。 您还可以选择是否显示在用户的电子邮件客户端“撰写”窗口或直接添加到发件箱。 (发件箱功能现在通常限制,因为更改Windows安全性,尤其是在微软的Outlook而言的。​​)

最快,最简单的方法就是使用类似JEDI代码库 JCLEMail 。 这是围绕SimpleMAPI的包装,这使得它非常容易(代码从旧的应用程序被采取,并且是基于从JCL演示样本):

EMail := TJclEMail.Create;
try
  EMail.Recipients.Add(AnsiString(EMailAddress), AnsiString(EMailName));
  EMail.Subject := AnsiString(Subject);
  EMail.Body := AnsiString(Body);
  EMail.HtmlBody := False;  // True if it's HTML email

  // Send attachment if wanted
  EMail.Attachments.Add(AnsiString(FileName));
  EMail.Send(True);   // True to show default email, false to add to outbox
finally
  EMail.Free;
end;

要缺点SimpleMAPI是,它可能是一个短期的解决方案(虽然它仍然是围绕在Win7 64位和更早版本,我不能对Windows 8的讲话)。 根据MSDN ,

[使用简单MAPI的气馁。 它可以在Windows的后续版本被修改或不可用。]

要缺点MAPI是,它依赖于MAPI安装客户端。 幸运的是,支持几乎所有软件mailto应该支持MAPI为好; 展望做,例如,也是如此Mozilla Thunderbird中。



Answer 2:

在确保显示的默认签名(如果这是问题的症结所在,如果不是不好意思,我看错),然后出现你可能是出于运气(因为我一直在努力做到这一点)。

下面的文章MS出现说“不”。 这似乎暗示着版本的Outlook到2010年不会支持默认电子邮件签名通过MAPI创建电子邮件时。 它似乎并没有提供太多的原因,并建议您只需使用在电子邮件对话框中的“插入签名”选项(这对于我来说,心不是一个真正的帮助时,您可能希望它默认,也许对于电子邮件只“走出去”,而无需用户干预)。

http://support.microsoft.com/kb/2544665



文章来源: Sending Email with signature