如何通过Outlook VSTO Add-in获取调用插件的BCC收件人邮箱地址?
Outlook VSTO插件中获取自身BCC收件人邮箱的方法
你说得没错,MailItem.Recipients集合里确实不会显示BCC收件人信息,但由于插件的使用者就是当前操作Outlook的用户,完全可以通过以下两种方式获取自身邮箱地址:
通过当前会话/账户属性直接获取
这是最直接可靠的方式,无需依赖邮件的收件人字段:- 使用
*Application.Session.CurrentUser*属性,它返回当前Outlook会话的用户对象,直接提取邮箱地址:string currentUserEmail = Application.Session.CurrentUser.Address; - 如果用户配置了多个邮箱账户,且需要确认当前邮件对应的发送/接收账户,可以结合
*MailItem.SendUsingAccount*属性:if (mailItem.SendUsingAccount != null) { string accountEmail = mailItem.SendUsingAccount.SmtpAddress; }
- 使用
读取邮件的MIME头获取BCC列表
本地Outlook会为BCC收件人保留邮件的BccMIME头信息,你可以通过*MailItem.PropertyAccessor*读取对应的MAPI属性来获取完整BCC列表,再从中提取自身邮箱:string bccHeader = mailItem.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x0022001F").ToString(); // 解析bccHeader(通常为逗号分隔的邮箱字符串),提取自身邮箱
对比来看,第一种方法更简便,因为直接指向当前使用插件的用户,不需要额外解析字符串;第二种方法适合需要确认自身确实在BCC列表中的场景。
内容的提问来源于stack exchange,提问作者bobglu
相关产品推荐
相关产品推荐

