更新时间:2023-10-14 11:34:10
访问outlook与使用无关SMTP,您可以使用以下内容:
Accessing outlook is independent of using SMTP, you can use the following:
下面介绍如何使用.NET从Outlook文件夹中的项目(在"收件箱"文件夹下称为"MySubFolderName")中检索数据:
The following demostrates how to retreive data from items within an Outlook folder (called "MySubFolderName" under the Inbox folder) using .NET:
首先添加对项目的Outlook COM对象的引用:
First add a reference to the Outlook COM object your project:
请注意,您可以访问任何Outlook / Exchange对象类型,例如约会,备注,任务,电子邮件等 - 只需使用intellisense选择哪一个(例如
Microsoft.Office.Interop.Outlook .... - 参见定义下面称为'item'的变量。)
Note that you can access any Outlook/Exchange object types, eg Appointments, Notes, Tasks, Emails etc - just use intellisense to select which one (eg Microsoft.Office.Interop.Outlook. ... - see definition of variable called 'item' below).
这是代码:
Microsoft.Office.Interop.Outlook.Application app = null;
Microsoft.Office.Interop.Outlook._NameSpace ns = null;
Microsoft.Office.Interop.Outlook .PostItem item = null;
Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null;
Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null;
试试
{
app = new Microsoft.Office.Interop.Outlook.Application();
ns = app.GetNamespace(" MAPI");
ns.Logon(null,null,false,false);
inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
subFolder = inboxFolder.Folders [" MySubFolderName"]; //folder.Folders[1];也工作
Console.WriteLine(" Folder Name:{0},EntryId:{1}",subFolder.Name,subFolder.EntryID);
Console.WriteLine(" Num Items:{0}",subFolder.Items.Count.ToString());
for(int i = 1; i< = subFolder.Items.Count; i ++)
{
item =(Microsoft.Office.Interop.Outlook.PostItem)subFolder.Items [i];
Console.WriteLine(" Item:{0}",i.ToString());
Console.WriteLine(" Subject:{0}",item.Subject);
Console.WriteLine(" Sent:{0} {1}" item.SentOn.ToLongDateString(),item.SentOn.ToLongTimeString());
$
Console.WriteLine(" Categories:{0}",item.Categories);
Console.WriteLine(" Body:{0}",item.Body);
Console.WriteLine(" HTMLBody:{0}",item.HTMLBody);
}
}
catch(System.Runtime.InteropServices.COMException ex)
{
Console.WriteLine(ex.ToString());
}
最后
{
ns = null;
app = null;
inboxFolder = null;
}