如何在Outlook插件中排除原始邮件
本文关键字:排除 原始 插件 Outlook | 更新日期: 2023-09-27 18:23:53
我正在用C#编写一个Outlook 2010/2013插件。我的缩写代码如下:
using Outlook = Microsoft.Office.Interop.Outlook;
using Office = Microsoft.Office.Core;
public partial class ThisAddIn
{
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Application.ItemSend += Application_ItemSend;
}
void Application_ItemSend(object Item, ref bool Cancel)
{
Outlook.MailItem mailItem = Item as Outlook.MailItem;
// Scan for keywords before the user sends the email.
}
}
当用户点击电子邮件上的"发送"按钮时,Application_ItemSend事件处理程序将执行。在这一点上,我想扫描消息正文中的某些关键字。但是,我希望在该扫描中排除旧邮件/原始邮件。我只想扫描用户刚刚键入的消息。。。mailItem.Body
和mailItem.HTMLBody
不仅包含用户正在发送的消息,而且还包括整个线程/会话中以前的所有消息。我该如何过滤掉这些?
我自己还没有测试过,但这也在我们Addin的待办事项列表中。我找不到太多关于这方面的文档,但邮件的OOXML(以及HTML)——至少在2013年——包含以下内容:
OOXML:
<w:bookmarkStart w:id="0" w:name="_MailOriginal"/>
HTML:
<span style='mso-bookmark:_MailOriginal'>
这个书签应该可以让你找到可以切断消息的地方——据我所知,API中没有其他选项。
请参阅此处了解如何获取邮件的OOXML:
Word.Document document = mailItem.GetInspector.WordEditor;
string xml = document.WordOpenXML;