0

特定の検索条件でメールの本文を取得する関数を作成しようとしています。メールボックスからアイテムをフェッチして本文を取得しようとすると、本文の一部しか書き込まれません。代わりに、本文からすべてのテキストが必要です。これどうやってするの?これは私がこれまでに持っているものです:

        Outlook.Application myApp = new Outlook.Application();
        const string PR_HAS_ATTACH = "http://schemas.microsoft.com/mapi/proptag/0x0E1B000B";

        // Obtain Inbox
        Outlook.Folder folder = myApp.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox) as Microsoft.Office.Interop.Outlook.Folder;


        Outlook.Table table = folder.GetTable(Microsoft.Office.Interop.Outlook.OlTableContents.olUserItems);

        // Remove default columns
        table.Columns.RemoveAll();

        // Add using built-in name
        table.Columns.Add("Subject");
        table.Columns.Add("ReceivedTime");
        table.Sort("ReceivedTime", Microsoft.Office.Interop.Outlook.OlSortOrder.olDescending);

        // Add using namespace
        // Date received 
        table.Columns.Add("urn:schemas:httpmail:textdescription");

        while (!table.EndOfTable)
        {
            Outlook.Row row = table.GetNextRow();
            if (row["Subject"].ToString().ToLower().Contains(subject.Text.ToLower()) && row["ReceivedTime"].ToString().Contains(cellCreationDate))
            {                    
                body.Text = row["urn:schemas:httpmail:textdescription"].ToString();
            }
        }
4

1 に答える 1

0

Outlook.Table を使用してから urn:shcemas:httpmail.textdescription を使用して本文全体を取得することはできません。http://msdn.microsoft.com/en-us/library/office/ff861580.aspxに記載されているように、textdescription は本文の最初の 255 文字のみを返します。

ここに代替案があります。

// change this in your code
body.Text = row["urn:schemas:httpmail:textdescription"].ToString();

// To this
Microsoft.Office.Interop.Outlook.MailItem mailItem =
                             myApp.Session.GetItemFromID(row["EntryID"]);
body.Text = mailItem.Body;
于 2013-11-13T22:07:44.897 に答える