C#-如何在包含图像的电子邮件中包含Outlook签名
本文关键字:包含 电子邮件 Outlook 签名 图像 C#- | 更新日期: 2023-09-27 18:21:41
这是我在Outlook 2013中发送电子邮件的代码:
public void GenerateEmail(OutEmail outEmail)
{
var objOutlook = new Application();
var mailItem = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem));
mailItem.To = outEmail.SendTo;
mailItem.Subject = outEmail.Subject;
mailItem.RTFBody = outEmail.Body + outEmail.Signature;
mailItem.Attachments.Add(outEmail.Attachment);
Outlook.Account account = objOutlook.Session.Accounts["mail@email.com"];
mailItem.SendUsingAccount = account;
mailItem.Send();
Console.WriteLine("done");
}
现在,outEmail.Signature
以字符串形式包含Outlook签名的HTML,位于:C:'Users'SO'AppData'Roaming'Microsoft'Signatures
。除了包含图像外,它还正确地格式化签名。如何将签名包含在图像中,以便在Outlook中创建新签名并将其包含在电子邮件中,而无需最终用户编辑签名HTML。我不介意以编程方式进行,但我需要确保它适用于所有可能添加的签名。
编辑:可能的解决方案?在HTML中,找到img
标记的实例并删除{SignatureName}_FILES'
,然后将{SignatureName}_FILES'
文件夹中的所有内容附加到电子邮件?
干杯。
尝试下面提到的
mailItem.GetInspector.Activate();
var signature = mailItem.HTMLBody;
mailItem.HTMLBody = EmailBody + signature;
Outlook在调用MailItem.Display
或访问MailItem.GetInspector
时插入签名(不必对返回的对象执行任何操作)。
如果您想以编程方式插入签名,Redemption(我是它的作者)将公开实现ApplyTo
方法的RDOSignature对象。
更新:自Outlook的最新版本(2017年夏季)起,GetInspector
技巧不再有效。现在只有MailItem.Display
将签名添加到未修改的消息中