Tag: outlook object model

使用MAPI从服务访问Exchange Server

我的任务是构建一个使用MAPI检查电子邮件的应用程序。 我使用了一个用cpp编码的包装类 ,可以从c#访问。 我意识到将托管代码和非托管代码结合起来不一定是最好的路径,但这是我可以开始工作的。 在使用它之后,我被要求将应用程序作为服务,因此可以在系统未登录时运行。 客户端要求我们使用MAPI,并使用Outlook 2007,但我希望它兼容x86和x64架构。 在几个工作站上运行的单独程序将允许使用单个电子邮件地址发送邮件。 该服务将监控此帐户,查看来自Exchange的新电子邮件,说明无法传递邮件。 发生这种情况时,它会在数据库中记录以供将来更正。 我对扩展MAPI如何工作的理解是它使用登录的人员的配置文件来访问Exchange Server。 我的问题是,当没有人登录系统时是否可以通过MAPI访问Exchange Server? 如果无法做到这一点,当没有用户登录时,OOM是否允许访问特定的电子邮件帐户(或配置文件)? 当主要使用c#时,一种方法会比另一种方法更好吗? 下面是一个包装类如何登录的简短示例。我添加了第二种方法,但从来没有让它登录到当前用户的配置文件以外的配置文件。 BOOL CMAPIEx::Login(LPCTSTR szProfileName, BOOL bInitAsService) { DWORD dwFlags=MAPI_EXTENDED | MAPI_USE_DEFAULT | MAPI_NEW_SESSION; if(bInitAsService) dwFlags|=MAPI_EXPLICIT_PROFILE | MAPI_NT_SERVICE; return (MAPILogonEx(NULL, (LPTSTR)szProfileName, NULL, dwFlags, &m_pSession)==S_OK); } BOOL CMAPIEx::Login(LPCTSTR szProfileName, LPCTSTR szProfilePassword, BOOL bInitAsService) { DWORD dwFlags=MAPI_EXTENDED | MAPI_EXPLICIT_PROFILE | MAPI_NEW_SESSION; if(bInitAsService) […]

Outlook中没有应用程序退出事件?

我正在使用12.0 Interop库,这是Outlook 2007的默认值。我实际上的目标是将Outlook 2003到2010集成到一个注册到退出事件的代码示例。 即使文档说Outlook应用程序存在应用程序Quit 事件 ,我也无法在Outlook.Application对象实现中找到它。 Visual Studio 2010似乎将Quit标识为一种方法: 题: 如何注册Outlook应用程序的Quit事件? (如果存在一个,或者在应用程序退出时触发的任何事件)如果可能,请提供一些示例代码。 谢谢!

在C#中动态加载和使用COM对象

我有一个C#项目,如果它安装在客户端的机器上,我想访问MS outlook。 “访问前景”部分是通过引用Outlook COM对象并从那里开始完成的。 我的问题现在是“如果已安装”部分。 目前,我的项目没有在没有安装outlook的机器上编译,所以我假设我不得不引用outlook组件,而是在检测到outlook存在后动态加载和使用它,但我还没有找到了一种方法来做到这一点。 我是否正确,是否有人对如何做到这一点有任何暗示? 谢谢。 编辑:已解决。 根据Hans Passant在关于使用办公室PIA的一条评论中给出的建议,certificate是阻力最小的路径。 在我的办公室机器上获得PIA时遇到了一些困难,但是使用这个问题的接受答案就克服了这个问题。