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

问题描述 投票:0回答:2

我使用 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 进行比较,但这是默认配置文件,我希望将其用于具有不同帐户的相同配置文件。我也尝试了 GetDefaultFolder(FolderType:OlDefaultFolders.olFolderInbox) 但如果我更改 Outlook 中的默认值,则不会改变。

有什么想法吗?

c# outlook office-interop
2个回答
0
投票

更新(太晚了,我知道)

只需使用命名空间帐户集合中的第一个帐户。

在VBS中: 设置 oas=NameSpace.Accounts 调试.打印oas(1).显示名称


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.