如何在c#中通过MAPI阅读Outlook电子邮件

问题描述

我正在尝试从 Outlook 读取 pst 电子邮件。首先,我假设我的 Outlook 未配置,因此我使用 ProfMan.Profile 库创建了一个认 Outlook 配置文件(我的配置文件)。

我正在尝试阅读 pst 邮件,这是我的代码

string pstFilePath = @"C:\Users\Admin\Documents\Outlook Files12\demo@my.pst";
Microsoft.Office.Interop.outlook.application app = 
    new Microsoft.Office.Interop.outlook.application();
string defaultprofile = app.DefaultProfileName;
NameSpace outlookNs = app.GetNamespace("MAPI");
outlookNs.Session.logon(defaultprofile,Missing.Value,false,true);
outlookNs.AddStore(pstFilePath);

但是当我控制 Onlogon 方法时,我收到此异常

无法完成操作。您没有连接。

谁能帮我解决这个问题?

解决方法

如果 Outlook 已安装并至少运行一次,则会有一个配置文件(默认称为“Outlook”)。

如果您调用 Namespace.Logon,您可以传递一个空字符串以登录到默认配置文件。

此外,如果您使用 ProfMan(因此使用 Redemption),您不妨使用 RDOSessionlibrary(emdbook) ## this step takes a while system.time( cc <- curve3d(f_opt(c(x,y),data=data),from=c(1,1),to=c(200,200),n=61,sys3d="none",.progress="text") ) ## Cairo::Cairo(file="plot3d.png") library(plot3D) with(cc,persp3D(x=replicate(61,x),y=t(replicate(61,y)),z,border="black") ) ## dev.off() cc2 <- curve3d(f_opt(c(x,from=c(5,180),to=c(20,n=c(16,21),.progress="text") ## Cairo::Cairo(file="plot3dB.png",width=1280,height=960) with(cc2,persp3D(x=replicate(21,y=t(replicate(16,cc2$z,border="black")) ## dev.off() - 它会创建(和删除)一个临时配置为访问给定 PST 文件的一次性配置文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...