【问题标题】:Incorrect format of email address from CurrentUser.Address in Outlook VSTOOutlook VSTO 中 CurrentUser.Address 的电子邮件地址格式不正确
【发布时间】:2019-02-04 12:18:31
【问题描述】:

我正在尝试使用

获取当前用户的 Outlook 电子邮件地址
 Globals.ThisAddIn.Application.Session.CurrentUser.Address;

这个显示的值有点像这样:

"/o=ExchangeLabs/ou=Exchange 管理组 (xxxxxxxxx)/cn=Recipients/cn=xxxxxxxxxxxxxxxxx-[我的电子邮件地址的开头在这里]"

第一个问题是邮箱地址被截断了。起初我以为这是断点问题,但修改字符串后发现它默认被切断了。第二个是我只想要没有之前所有数据的电子邮件地址值。我可以编辑字符串,但我正在寻找获取值的正确方法。

这在用户通过 Exchange 登录时有效。

Globals.ThisAddIn.Application.Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress;

我正在寻找未通过 Exchange 登录的用户的等价物。

我找到了Email Address of the Current User,但它是一个旧线程,而且解决方案看起来都很老套。

【问题讨论】:

    标签: c# outlook vsto outlook-addin


    【解决方案1】:

    检查AddressEntry.Type 属性。如果是“EX”,请使用GetExchangeUser().PrimarySmtpAddress。否则,只需阅读 Address 属性。

    【讨论】:

    • 这就是问题所在,当我阅读地址时,我得到了这个被截断的大字符串。
    • 适用于哪种地址类型? “EX”以外的东西?
    • 是的,适用于所有其他地址类型。并非所有登录帐户都是 EX 类型的。
    • 我认为您错过了我的观点(见上文),您需要检查 AddressEntry.Type 属性。如果是“EX”,则使用 GetExchangeUser().PrimarySmtpAddress。否则,只需阅读 AddreessEntry.Address 属性。
    • 哦,好吧,显然我正在检查的电子邮件是 EX 类型的...现在可以使用了。
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多