回答
使用Namespace.CurrentUser
:http://msdn.microsoft.com/en-us/library/bb220041(v=office.12).aspx
經測試,在VS 2010,.NET 4.0,展望2010年:
var emailAddress = this.Application.ActiveExplorer().Session.CurrentUser.AddressEntry.GetExchangeUser().PrimarySmtpAddress;
爲什麼不縮短到var emailAddress = this.Application.Session.CurrentUser.AddressEntry.Address?您還需要檢查AddressEntry.GetExchangeUser是否有效 - 對於配置文件中沒有Exchange的用戶,GetExchangeUser將返回null。 – 2012-05-11 22:30:43
嘗試outlookObject.ActiveExplorer().Session.CurrentUser.Address
。通過打開電子郵件時爲我工作在VS10,Outlook 2007中,.NET 4.0
任何人經過,我強烈建議使用 Application.ActiveExplorer().Session
, 作爲ActiveExplorer()
可能會返回一個NullReferenceException
使用Application.Session.CurrentUser.AddressEntry.Address
,而不是任何東西,例如外表。
如果您使用的是正常的POP/IMAP服務器,您將收到的電子郵件地址爲: Application.Session.CurrentUser.AddressEntry.Address;
使用Exchange Server,您將收到電子郵件地址: Application.Session.CurrentUser.AddressEntry.GetExchangeUser()。PrimarySmtpAddress;
取決於「當前用戶地址」的定義。
- Outlook的主帳戶的地址可以從
Appication.Session.CurrentUser
(返回Recipient
對象)進行檢索。使用Recipient.Address
屬性。但請注意,對於Exchange帳戶(Recipient.AddressEntry.Type == "EX"
),您將收到EX類型的地址。要檢索SMTP地址,請使用Recipient.AddressEntry.GetExchangeUser().PrimarySmtpAddress
。在發生錯誤時準備處理空值/異常。
在擴展MAPI級別(C++或Delphi),使用IMAPISession::QueryIdentity
(您可以在OutlookSpy測試 - 點擊在IMAPISession按鈕,然後QueryIdentity)。然後您可以閱讀PR_ADDRTYPE
屬性(「EX」與「SMTP」)和PR_EMAIL_ADDRESS
(當PR_ADDRTYPE
=「SMTP」)或(在Exchange的情況下)PR_SMTP_ADDRESS
(不保證存在)和PR_EMS_AB_PROXY_ADDRESSES
(多值屬性將Exchange地址,包括所有代理(別名)地址)。
如果配置文件中有多個帳戶,則可以通過多個帳戶發送或接收電子郵件。在這種情況下,使用
MailItem.SendUsingAccount
(返回Account
對象,可以爲空 - 在這種情況下使用Application.Session.CurentUser
)。這對收到,發送或正在撰寫的電子郵件都有效(Application.ActiveInspector.CurrentItem
或Application.ActiveExplorer.ActiveInlineResponse
)。給定配置文件中的所有帳戶都可以使用
Namespace.Accounts
集合(Application.Session.Accounts
訪問)。帳戶的地址可以使用Account.SmtpAddress
屬性進行訪問。 請注意,Outlook對象模型僅公開郵件帳戶。某些商店帳戶(如PST)不在收藏夾中,因爲即使其他某些帳戶(如POP3/SMTP)可以將其傳送到該商店,它們也沒有固有的用戶身份。如果您想訪問所有帳戶,則可以使用Redemption及其RDOSession。帳戶收集(RDOAccounts對象)。
在擴展MAPI級別上,帳戶通過IOlkAccountManager接口公開。如果您單擊IOlkAccountManager按鈕,您可以在OutlookSpy中使用它。
- 在委託Exchange存儲的情況下,存儲所有者不會通過Outlook對象模型公開。您可以使用擴展MAPI(請注意,PR_MAILBOX_OWNER_ENTRYID屬性僅由在線商店公開,但在緩存存儲中不可用)。您可以解析Exchange存儲條目標識並從中提取EX類型地址。然後,您可以構造給定EX地址的GAL對象條目標識。您還可以使用Redemption及其RDOExchangeMailboxStore對象及其
Owner
屬性訪問店主。
- 1. 如何從Outlook 2007中獲取發送電子郵件地址
- 2. 在.NET中獲取當前用戶的電子郵件地址
- 3. Outlook REST API - 獲取登錄用戶的電子郵件地址
- 4. 如何獲取EWS中當前登錄用戶的電子郵件地址?
- 5. 如何在Outlook 2007中複製電子郵件地址
- 6. 獲取當前登錄的用戶的電子郵件地址timming了
- 7. 如何從Outlook獲取發件人的電子郵件地址?
- 8. 獲取當前登錄用戶的電子郵件地址保存框
- 9. 如何從outlook中獲取電子郵件地址?
- 10. 使用VBA從Outlook電子郵件正文中提取電子郵件地址?
- 11. Outlook 2007中的電子郵件
- 12. 在C#中獲取Outlook 2007中帳戶的所有電子郵件地址或vb
- 13. 在Cocoa中獲取用戶的默認電子郵件地址
- 14. 在SPServices中獲取用戶的電子郵件地址
- 15. CakePHP的:使用電子郵件地址和當用戶輸入自己的電子郵件地址的形式
- 16. 如何從MS Outlook 2010獲取電子郵件地址?
- 17. 從outlook解放電子郵件地址
- 18. 從給定的電子郵件地址獲取電子郵件地址DirectoryEntry
- 19. 在Outlook中使用來自Access 2007的電子郵件地址發送電子郵件
- 20. 無法獲取電子郵件地址
- 21. Facebook API獲取電子郵件地址
- 22. 從Samaccountname獲取電子郵件地址
- 23. 從facebook獲取電子郵件地址
- 24. Outlook VBA正則表達式提取電子郵件地址中的用戶名
- 25. 將電子郵件地址添加到MailItem.To在Outlook 2007中使用分號addin
- 26. 如何獲取Android用戶的電子郵件地址?
- 27. TeamCity如何獲取Subversion用戶的電子郵件地址?
- 28. Javamail - 如何獲取用戶的默認電子郵件地址?
- 29. 在Youtube上獲取用戶的電子郵件地址
- 30. 如何獲取Yii登錄用戶的電子郵件地址?
這就是VBA,而不是C#。我似乎無法找到在C# – electricsheep 2011-01-21 17:31:01
你可以嘗試`myEmailAddress = this.ActiveExplorer()。Session.CurrentUser.EmailAddress;`或嘗試其他解決方案在這裏:http://social.msdn.microsoft.com/forums/en- US/vsto/thread/d2d9bf23-e27f-4f30-9199-42833d6919a4/ – acconrad 2011-01-21 17:45:27