如何绕过外部程序的 Outlook 凭据提示?

How to bypass Outlook credential prompt from external program?

我开始开发一个外部程序来处理来自 Outlook 商店的电子邮件,并将它们保存在我们的 Web 应用程序中。

今天,我有一个执行此处理的 Outlook 加载项,但我想避免在加载项中执行此操作,因为有时 Outlook 会挂起 1 到 2 秒。

在外部程序中,我卡在了一个对话框,要求用户存储的凭据,因为用户没有缓存他的凭据。我想知道是否有办法避免显示此对话框。现在,我正在使用的代码如下所示。

RDOSession session = RedemptionLoader.new_RDOSession();
session.Logon();

RDOStore store = null;

for (int i = 1; i < session.Stores.Count; i++)
{
    store = session.Stores[i];
    store.OnNewMail += (entryID) => { MessageBox.Show(entryID); };
}

只要商店被缓存,您的代码就可以正常工作。 Public 文件夹存储很可能未缓存,因此需要凭据才能访问。

但最重要的是,NewMail 事件仅在配置文件中的主邮箱上触发,因此您只需要 RDOSession.Stores.DefaultStore

您当然可以在其他商店的收件箱文件夹上使用 Items.ItemAdd 事件,但是,同样,Public 文件夹商店没有收件箱文件夹。遍历商店时,检查 RDOStore.StoreKind 属性.