如何通过代码获取Outlook中用户设置的默认邮箱?
获取Outlook中设置的默认发送账户
你之前的方法获取的是Outlook默认数据文件(Default Store),而你在「文件>账户设置>账户设置」里选定的是默认发送账户,这是两个不同的概念——Exchange账户通常会被设为默认数据文件,但默认发送账户可以单独指定为其他邮箱(比如Gmail)。
要获取设置的默认发送账户,需要遍历Outlook的账户集合,找到标记为DefaultSendAccount的账户:
var outlookApp = new Microsoft.Office.Interop.Outlook.Application(); var outlookNamespace = outlookApp.GetNamespace("MAPI"); // 遍历账户集合,筛选默认发送账户 var defaultSendAccount = outlookNamespace.Accounts .Cast<Microsoft.Office.Interop.Outlook.Account>() .FirstOrDefault(account => account.DefaultSendAccount); if (defaultSendAccount != null) { // 获取邮箱地址 string defaultEmailAddress = defaultSendAccount.SmtpAddress; // 获取邮箱显示名称 string defaultEmailDisplayName = defaultSendAccount.DisplayName; // 按需使用这两个值 }
注意事项
- 需要确保项目引用了
Microsoft.Office.Interop.Outlook程序集 - 要处理
defaultSendAccount为null的情况(比如用户未设置默认发送账户时)
内容的提问来源于stack exchange,提问作者Alldman
相关产品推荐
相关产品推荐

