过去,我使用 MAPISendMail 从带有文件附件的 C++ 应用程序启动 Outlook(或任何所需的 MAPI 电子邮件应用程序)。(类似于 Microsoft Word 的发送电子邮件功能)。
我需要在 C# 应用程序中做同样的事情,并让它在 XP、Vista、Server 2008(我想是 Windows 7)上运行时工作。
MAPISendMail 在 Vista/2008 下是不行的,因为当 Outlook 正在运行并且托管代码不支持 MAPI 时,它总是返回 MAPI_E_FAILURE。即使在检查了此修复程序之后:http: //support.microsoft.com/kb/939718 我也无法让它可靠地工作。
我知道 Microsoft Word 和 Adobe Reader 9 都可以在 Vista 下启动带有附件的 Outlook。
AC# 兼容的解决方案将是首选,但我会对任何有效的解决方案感到满意(不必使用 MAPI)。我似乎找不到当前的“解决方案”是什么。Stack Overflow 上现有的答案似乎也没有涵盖这一点。
编辑:
我知道 MAPI 和 C# 不能一起工作,所以我将采用在 Vista 和 Server 2008 中不以管理员身份运行时工作的 C/C++ 解决方案。请参阅 Adobe Reader 9 和 Microsoft Word 作为有效示例。