从收件箱检索未读消息
使用 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
历史
希望这段代码能帮助到大家。祝您编码愉快。