2012-08-22 47 views
2

我正在編寫Outlook Interop應用程序,我需要從交換用戶對象獲取國家/地區條目。它不能通過公共財產獲得,有沒有辦法得到它呢?從ExchangeUser獲取國家/地區信息對象

ExchangeUser entry = OutlookManager.Instance.GetAddressBookEntry(mail.SenderName, mail.SenderAddress); 

if (entry != null) 
{ 
    var licensee = new Licensee(); 
    licensee.City = entry.City; 
    licensee.Company = entry.CompanyName; 
    //todo get country 
    licensee.Country = ??? 
    licensee.Department = entry.Department; 
    licensee.FirstName = entry.FirstName; 
    licensee.LastName = entry.LastName; 
    licensee.OutlookDisplayName = entry.Name; 
} 

回答

1

您可以使用ExchangeUser.PropertyAccessor檢索國家財產。如果酒店不存在,您需要嘗試/趕上。請參閱source reference和可用的Mail User Properties

try { 
    licensee.Country = entry.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A26001E"); 
} 
catch { licensee.Country = ""; }   
+0

謝謝。有趣的是,如果我通過Outlook查看地址簿條目,則會引發COM異常,儘管區域/國家/地區字段存在。 – metacircle

+0

該國家/地區在Outlook中的地址簿條目下顯示在哪裏?有多個國家/地區的字段。它可能是PR_COUNTRY,PR_BUSINESS_ADDRESS_COUNTRY,PR_HOME_ADDRESS_COUNTRY或PR_OTHER_ADDRESS_COUNTRY。請參閱[郵件用戶屬性](http://msdn.microsoft.com/zh-cn/library/bb446002.aspx)以確定要檢索哪個屬性標記(* proptag *)。 – SliverNinja

+0

它出現在'一般',我已經嘗試所有這些屬性,沒有工作不幸。 – metacircle

相關問題