我有一些使用 MAPI 启动默认电子邮件客户端的代码。但是,当默认 MailTo 客户端设置为“新 Outlook”时,MAPI 将启动旧 Outlook 客户端。这会导致程序在未安装旧 Outlook 的新计算机上使用时挂起/崩溃。
我使用的是 Outlook 版本 1.2024.403.300,客户端版本为 20240329006.06。安装的Mapi dll是Mapi32.dll。
这似乎是 MAPI 本身的问题,例如当我直接启动 MailTo 时
Process.Start(new ProcessStartInfo{ FileName = @"mailto:[email protected]", UseShellExecute = true });
新的 Outlook 启动没有问题。不幸的是,直接使用 MailTo 不是一个选项,因为我们需要向电子邮件添加附件,而我的理解是 MailTo 不支持这一点。
新 Outlook 不支持 MAPI(按设计),这就是旧 Outlook 启动的原因。