向邮件正文添加文本的Outlook附加组件

本文关键字:Outlook 组件 文本 正文 添加 | 更新日期: 2023-09-27 18:17:42

我创建了一个小的Outlook插件,如果电子邮件主题包含某个字符串,它可以在邮件正文中添加一个链接。目前,只有打开邮件(双击)才会添加链接。有没有一种方法可以在用户不打开消息的情况下添加链接?还是我的要求不可能实现?如果是,为什么?

void inspectors_NewInspector(Inspector Inspector)
{
  Outlook.MailItem mailItem = Inspector.CurrentItem as Outlook.MailItem;
  if (mailItem != null)
  {
     if (mailItem.Subject.StartsWith("ABCDE"))
     {
        mailItem.BodyFormat = OlBodyFormat.olFormatHTML;
        mailItem.HTMLBody = "<html><body>Click <a href='www.google.com'>here</a>.<br><br></body></html>" + mailItem.HTMLBody;
        mailItem.Save();
     }
  }
}

向邮件正文添加文本的Outlook附加组件

实际上我自己找到了这个问题的答案,我将把它贴在下面,供将来需要的人参考。我用这个答案作为指导。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
   this.Application.NewMailEx += new Outlook.ApplicationEvents_11_NewMailExEventHandler(olApp_NewMail);
}
private void olApp_NewMail(String entryIDCollection)
{
   Outlook.NameSpace outlookNS = this.Application.GetNamespace("MAPI");
   Outlook.MAPIFolder mFolder = this.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
   Outlook.MailItem mail;
   try
   {
      mail = (Outlook.MailItem)outlookNS.GetItemFromID(entryIDCollection, Type.Missing);
      if (mailItem.Subject.StartsWith("ABCDE"))
      {
         mailItem.BodyFormat = OlBodyFormat.olFormatHTML;
         mailItem.HTMLBody = "<html><body>Click <a href='www.google.com'>here</a>.<br><br></body></html>" + mailItem.HTMLBody;
         mailItem.Save();
      }
   }
   catch
   {}
}