VSTO Outlook嵌入图像MailItem

我需要在用户签名之后将图像作为电子邮件的一部分嵌入,而不是在电子邮件的末尾,因为如果我发送大型电子邮件的回复,嵌入式图像将位于底部电子邮件链

  • 如何将图像作为电子邮件内容的一部分嵌入 (不是指向外部图像的链接)?
  • 如何在用户签名后添加此图像?

我正在使用VSTO,VS2008 Fwk3.5和Outlook 2007

这是我的代码:

public partial class ThisAddIn { private void ThisAddIn_Startup(object sender, System.EventArgs e) { this.Application.ItemSend += new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend); } private void Application_ItemSend(object Item, ref bool Cancel) { if (Item is Outlook.MailItem) { Outlook.MailItem mailMessage = (Outlook.MailItem)Item; //do something to add the image after the signature } } 

最后我解决了这个问题:

 private void SendFormatted(Outlook.MailItem mail) { if (!string.IsNullOrEmpty(mail.HTMLBody) && mail.HTMLBody.ToLower().Contains("")) { //Get Image + Link string imagePath = @"D:\\Media\Imagenes\100MSDCF\DSC00632.JPG"; object linkAddress = "http://www.pentavida.cl"; //CONTENT-ID const string SchemaPR_ATTACH_CONTENT_ID = @"http://schemas.microsoft.com/mapi/proptag/0x3712001E"; string contentID = Guid.NewGuid().ToString(); //Attach image mail.Attachments.Add(imagePath, Outlook.OlAttachmentType.olByValue, mail.Body.Length, Type.Missing); mail.Attachments[mail.Attachments.Count].PropertyAccessor.SetProperties(SchemaPR_ATTACH_CONTENT_ID, contentID); //Create and add banner string banner = string.Format(@"
", linkAddress, contentID); mail.HTMLBody = mail.HTMLBody.Replace("", banner); mail.Save(); } }