65.9K
CodeProject 正在变化。 阅读更多。
Home

从收件箱检索未读消息

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.82/5 (5投票s)

2008年1月29日

CPOL
viewsIcon

96566

使用 Visual Basic .NET 中的 Outlook 对象模型检索收件箱中的未读消息

引言

这篇文章是关于读取 Outlook 邮件的,我遇到这个需求是因为我的客户要求我自动化读取他收件箱中的未读邮件,无需任何干预。所以我创建了一个基本的应用程序,可以读取收件箱邮件。

本文档描述了如何使用 Microsoft Outlook 10.0 对象库在 Visual Basic .NET (2005) 中检索 Outlook 收件箱中的未读消息。

基本要求

1. 您的机器上应配置 Outlook 2003.

2. 您的机器上应安装 Visual Studio 2005

使用代码

启动 VB.net (2005) 的新会话(控制台)应用程序,并将以下代码粘贴到 module1.vb 中

在运行代码之前,请不要忘记添加对 Microsoft Outlook 10.0 对象库的引用。要添加引用,请浏览“项目”->“添加引用”,选择“COM”选项卡

然后选择“Microsoft Outlook 10.0 对象库”并按“确定”。

运行应用程序。控制台窗口将显示 Outlook (2003) 收件箱中的所有未读邮件。

Imports System.Reflection
'// Reference to Microsoft Outlook 11.0 Object Library
Imports Microsoft.Office.Interop.Outlook

Module Module1

    Sub Main()
        ' Create Outlook application.
        Dim oApp As Microsoft.Office.Interop.Outlook.Application = New Microsoft.Office.Interop.Outlook.Application

        ' Get Mapi NameSpace.
        Dim oNS As Microsoft.Office.Interop.Outlook.NameSpace = oApp.GetNamespace("mapi")
        oNS.Logon("YourValidProfile", Missing.Value, False, True) ' TODO:

        ' Get Messages collection of Inbox.
        Dim oInbox As Microsoft.Office.Interop.Outlook.MAPIFolder = oNS.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox)
        Dim oItems As Microsoft.Office.Interop.Outlook.Items = oInbox.Items
        Console.WriteLine("Total : " & oItems.Count)

        ' Get unread e-mail messages.
        oItems = oItems.Restrict("[Unread] = true")
        Console.WriteLine("Total Unread : " & oItems.Count)

        ' Loop each unread message.
        Dim oMsg As Microsoft.Office.Interop.Outlook.MailItem
        Dim i As Integer

        For i = 1 To oItems.Count
            oMsg = oItems.Item(i)

            Console.WriteLine(i)
            Console.WriteLine(oMsg.SenderName)
            Console.WriteLine(oMsg.Subject)
            Console.WriteLine(oMsg.ReceivedTime)
            Console.WriteLine(oMsg.Body)
            Console.WriteLine("---------------------------")
            Console.WriteLine("press any key to continue")
        Next

        ' Log off.
        oNS.Logoff()

        ' Clean up.
        oApp = Nothing
        oNS = Nothing
        oItems = Nothing
        oMsg = Nothing
    End Sub

End Module
        
        

历史

  • 2008/01/29 - 基本版本
  • 希望这段代码能帮助到大家。祝您编码愉快。

    © . All rights reserved.