代码之家  ›  专栏  ›  技术社区  ›  Kaster

Outlook赎回-打开经典和新Outlook的检查窗口

  •  0
  • Kaster  · 技术社区  · 1 年前

    我们(WPF桌面应用程序)打算使用Redemption库来准备电子邮件并发送(以前在Outlook中打开)。我观察到经典和新Outlook之间的不同行为。具体来说,在经典版本中,电子邮件仅保存在“草稿”文件夹中,但“检查器”窗口不会打开。在新的Outlook中,一切正常。此外,我们依赖仅提供经典Outlook版本的Windows Server虚拟机。

    我们误解或做错了什么?我们如何确保会话连接到正确的Outlook版本?鉴于微软计划在2029年之前仅支持经典Outlook版本,您能向我们推荐什么途径?

    附件是我们的尝试。非常感谢。

        RDOSession session = new RDOSession();
        System.Diagnostics.Process[] procs = System.Diagnostics.Process.GetProcessesByName("OUTLOOK");
        if (procs.Length == 0)
        {
            session.Logon(null, null, false, true, null, false);
        }
        else
        {
            session.Logon(null, null, false, false, null, false);
        }
    
        RDOFolder draftsFolder = session.GetDefaultFolder(rdoDefaultFolders.olFolderDrafts);
        RDOMail mail = draftsFolder.Items.Add(rdoItemType.olMailItem) as RDOMail;
    
        mail.Subject = template.Subject;
        mail.Body = template.Body;
        ...
        mail.Save();
        mail.Display(true);      
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Dmitry Streblechenko    1 年前

    新的Outlook(本质上是一个运行从Office 365服务器下载的JS的嵌入式浏览器)不安装、使用或依赖于桌面Outlook使用的扩展MAPI系统。新的Outlook不提供客户端可访问的API,甚至不提供与桌面Outlook公开的内容(Outlook对象模型、扩展MAPI等)接近的内容。

    您上面的代码使用扩展MAPI(通过兑换),并且当您调用 RDOMail.Display ,它运行outlook.exe(因为这是实现由调用的扩展MAPI窗体对象的工具 RDOMail。显示器