7

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;

では、Outlookで現在開いている電子メールを取得するにはどうすればよいですか?、この方法は私には有効ですが、現在の電子メールのインデックスを取得する必要があります。

ありがとう。

4

2 に答える 2

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.
    }
}

上記では、最初に選択したアイテムを処理できることに注意してください。複数のアイテムを選択している場合は、それらをループで処理することをお勧めします。

于 2012-06-07T16:28:09.493 に答える
6

上に参照を追加

using Outlook = Microsoft.Office.Interop.Outlook;

次に、メソッド内。

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;
                 }
             }

また、メールを表示する前にOutlookに表示される本文を変更することもできます。

于 2012-06-11T12:33:52.833 に答える