Oulook Interop:检查“帐户”是否为默认值

时间:2019-02-19 11:11:00

标签: c# outlook office-interop

我使用Outlook Interop遍历所有帐户:

var app = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
Microsoft.Office.Interop.Outlook._NameSpace _sessionNs = app.GetNamespace("MAPI");

foreach (Account account in _sessionNs.Accounts)
{
    if (account != null)
    {
        var addressAccount = account.SmtpAddress;
        //TODO How to check if is default?
    }
}

我在Account对象上找不到任何属性,以检查它是否为默认帐户。 我尝试将account.Session.CurrentProfileName与app.DefaultProfile进行比较,但这是默认的Profile,对于不同的帐户,我希望使用相同的Profile。我也尝试通过GetDefaultFolder(FolderType:OlDefaultFolders.olFolderInbox)进行尝试,但是如果更改Outlook中的默认值,则不会改变。

有想法的人吗?

1 个答案:

答案 0 :(得分:0)

以编程方式创建新消息并获取其SendUsingAccount属性。这是默认帐户。