我使用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中的默认值,则不会改变。
有想法的人吗?
答案 0 :(得分:0)
以编程方式创建新消息并获取其SendUsingAccount属性。这是默认帐户。