0

我需要创建一个可以从命令行调用的可执行文件,它将创建一封电子邮件,将文件附加到电子邮件并将电子邮件显示给用户,以便他们可以完成电子邮件并将其发送. 这应该在用户已配置为其默认设置的电子邮件客户端中完成。

这需要为尽可能多的电子邮件客户端工作。我知道使用最多的是 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 位可执行文件无法调用它。出于这个原因,我会坚持上述计划。

4

1 回答 1

0

Outlook 2007 supports Simple MAPI just fine.

于 2012-11-27T21:59:45.317 回答