在Outlook中检索当前的电子邮件正文

Rad*_*adi 7 c# outlook-2007 outlook-addin outlook-2010

在我的Outlook插件中我想在功能区上添加一个按钮,所以当用户点击此按钮我想要检索当前所选电子邮件的正文时,我有这个代码,但它只检索收件箱中的第一封电子邮件,因为索引是1:

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.MAPIFolder myInbox = mapiNameSpace.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
String body = ((Microsoft.Office.Interop.Outlook.MailItem)myInbox.Items[1]).Body;
Run Code Online (Sandbox Code Playgroud)

那么如何在outlook中检索当前打开的电子邮件?,这个方法适合我,但我需要获取当前电子邮件的索引.

谢谢.

Dou*_*las 7

您不应Outlook.Application()每次都初始化一个新实例.大多数加载项框架Outlook.Application通常通过名为的字段或属性为您提供与当前Outlook会话相对应的实例Application.您应该在加载项的生命周期中使用它.

要获取当前选定的项目,请使用:

Outlook.Explorer explorer = this.Application.ActiveExplorer();
Outlook.Selection selection = explorer.Selection;

if (selection.Count > 0)   // Check that selection is not empty.
{
    object selectedItem = selection[1];   // Index is one-based.
    Outlook.MailItem mailItem = selectedItem as Outlook.MailItem;

    if (mailItem != null)    // Check that selected item is a message.
    {
        // Process mail item here.
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,上面的内容将允许您处理第一个选定的项目.如果您选择了多个项目,则可能需要在循环中处理它们.


Mor*_*key 6

在顶部添加引用

using Outlook = Microsoft.Office.Interop.Outlook;
Run Code Online (Sandbox Code Playgroud)

然后在一个方法里面;

Outlook._Application oApp = new Outlook.Application();
if (oApp.ActiveExplorer().Selection.Count > 0)
            {
                Object selObject = oApp.ActiveExplorer().Selection[1];

                if (selObject is Outlook.MailItem)
                {
                    Outlook.MailItem mailItem = (selObject as Outlook.MailItem);
                    String htmlBody = mailItem.HTMLBody;
                    String Body = mailItem.Body;
                 }
             }
Run Code Online (Sandbox Code Playgroud)

您还可以在查看邮件之前更改将在Outlook中显示的正文.