Oulook Interop: проверьте, установлен ли аккаунт по умолчанию - PullRequest
0 голосов
/ 19 февраля 2019

Я использую 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.

Любые идеары?

1 Ответ

0 голосов
/ 19 февраля 2019

Создайте новое сообщение программно и получите его свойство SendUsingAccount.Это учетная запись по умолчанию.

...