【发布时间】:2012-11-15 11:41:21
【问题描述】:
我需要创建一个可以从命令行调用的可执行文件,它将创建一封电子邮件,将文件附加到电子邮件中并向用户显示电子邮件,以便他们可以完成电子邮件并发送。这应该在用户配置为默认的电子邮件客户端中完成。
这需要为尽可能多的电子邮件客户端工作。我知道使用最多的是 Outlook 2007-2010、Outlook Express、Windows Live Mail 和 Thunderbird。我将以 .NET 2.0 为目标,这样如果用户使用 Vista,它就不需要安装更新的 .NET。
Simple MAPI 能够执行上述操作,但 Outlook 2007+ 不支持它。列表中的所有其他邮件客户端都支持 Simple MAPI。我的印象是 Outlook 是唯一使用扩展 MAPI 的客户端,而且扩展 MAPI 很难使用,因此最好只使用 Outlook COM API 而不是扩展 MAPI。
首先,如果 Outlook 可用,程序将查找 Outlook 并使用 Outlook COM API 执行上述操作。我将在 VB 中实现这个组件并使用后期绑定,这样我就不会针对特定版本的 Outlook 进行编译。然后,如果未找到 Outlook,它将回退到 Simple MAPI 并尝试使用它。
由于代码中的所有这些决策,我会让这个程序记录它的活动,以便我们可以在用户机器不工作时调试它发生的事情。
这种方法行得通吗?你知道更好的方法吗?我的目标是最大限度地提高兼容性。
编辑
看起来 Outlook 2007+ 确实支持 Simple MAPI,但如果您运行的是 64 位版本,则 32 位可执行文件无法调用它。出于这个原因,我会坚持上述计划。
【问题讨论】: