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

时间:2019-01-30 12:58:32

标签: c# outlook credentials outlook-redemption

我开始开发一个外部程序来处理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); };
}

1 个答案:

答案 0 :(得分:2)

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

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

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