我有一个程序需要连接到我的公司Exchange 2003服务器并查看公用文件夹中的特定文件夹。我最终将遍历此文件夹并扫描(使用OCR)每封电子邮件,以便我可以解析数据库的信息。
然而,我缺乏如何开始这样做的知识。我在网上看到了关于WebDAV的事情,这似乎是在C#和Exchange 2003服务器上执行此操作的唯一方法。如果有人可以请让我知道一个更好的方式。
如果没有,那么请给我一些WebDAV的简单解释。我在网上看过的关于它的东西让它看起来比我想象的要复杂得多。至少对于我正在尝试的任务。
答案 0 :(得分:1)
首先添加对Microsoft.Office.Interop.Outlook的引用,然后使用语句添加这些
using Microsoft.Office.Interop.Outlook;
using _Application = Microsoft.Office.Interop.Outlook._Application;
using Outlook = Microsoft.Office.Interop.Outlook;
然后添加此
//declare Outlook application
_Application objOutlook = new Outlook.Application(); //create it
_NameSpace objNs = objOutlook.Session; //create new session
MAPIFolder oPublicFolders = objNs.Folders["Public Folders"];
MAPIFolder oAllPublicFolders = oPublicFolders.Folders["All Public Folders"];
Items itms = oAllPublicFolders.Items;
foreach (MailItem item in itms)
{
GetNewMailItem(objOutlook, objContacts, item);
}
Marshal.ReleaseComObject(objOutlook); //release outlook com object
下一篇文章就是我所做的,请更改所有代码以满足您的需求。
private static void GetNewMailItem(_Application objOutlook, MAPIFolder objContacts, MailItem item)
{
if(item.ReceivedTime.Date == DateTime.Now.Date.AddDays(-1) || item.UnRead)
{
if (item.Attachments.Count > 0)
{
var attachments = item.Attachments;
foreach (Attachment attachment in attachments)
{
if(attachment.Type == OlAttachmentType.olEmbeddeditem)
{
ProcessEmbeddedEmailAttachment(attachment, objOutlook, objContacts);
}
else if (attachment.FileName.EndsWith(".doc") || attachment.FileName.EndsWith(".docx"))
{
ExtractAttachment(attachment);
item.UnRead = false;
}
}
}
}
}
我遗漏了剩下的代码,因为它特定于我的处理。
答案 1 :(得分:0)
MAPI类似(您需要安装CDO 1.21 - 更高版本的Exchange不再使用CDO而是使用Exchange Web服务)
向项目添加对MAPI的引用。代码与其他答案类似:
var session = new Session();
// Need this to pass null values to MAPI calls - can't remember why exactly - YMMV
object mObj = System.Reflection.Missing.Value;
session.Logon(MailProfileName, mObj, false, mObj, mObj, mObj, mObj);
// Get the inbox for now for the current user
inbox = (Folder)session.GetDefaultFolder(1);
// more processing etc...
显然看看CDO参考 - 上面的代码最初用于处理所选配置文件的收件箱中的一些邮件项目