我写了一个Outlook(2010+)C#插件,并且在使用不同的电子邮件服务器时遇到了一些问题。 当我找到每种服务器类型的特定解决方案时,我想知道是否有办法获取Outlook帐户指向哪个电子邮件服务器的信息?获取底层电子邮件服务器软件的名称是完全足够的,因为不需要知道版本号。
像
这样的东西string serverSoftware = account.server.softwareName;
会很棒......
答案 0 :(得分:2)
您可以在注册表中查找帐户clsid或服务名称。
对于Outlook 2010及更早版本:
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows Messaging Subsystem\Profiles\{0}\9375CFF0413111d3B88A00104B2A6676
对于Outlook 2013:
HKCU\Software\Microsoft\Office\15.0\Outlook\Profiles\{0}\9375CFF0413111d3B88A00104B2A6676
您必须使用Account.Session.CurrentProfileName
替换{0}在此位置迭代所有子项并查找“Account Name”,它将与Account.DisplayName匹配
好的,现在它变得更加困难了:
首先根据此列表检查“clsid”的值:
如果是最后一个clsid,请选中“服务名称”。对于Exchange帐户,它将是“MSEMS”,而Kerio Connect帐户将返回“KERIOOCF”作为服务名称。
答案 1 :(得分:0)
不,该信息根本不公开 - 所有Outlook都知道它需要使用POP3,SMTP或IMAP4访问特定的远程服务器。
你究竟要解决什么问题?为什么你需要这个?