2013-09-04 16 views
5

Potrzebuję uzyskać adres e-mail aktualnie zalogowanego użytkownika z kodem C#.Uzyskaj adres e-mail programu Outlook za pośrednictwem C#

Potrzebuję pełnego adresu, a nie tylko założonego konta e-mail (np. [email protected]), chociaż będzie to działało dla większości klientów.

Każda pomoc zostanie bardzo doceniona.

+0

Obawiam się, że nie mam próbę w tej chwili jedyne odniesienie mogę znaleźć to czas i potrzebują punktu we właściwym kierunku –

+0

Prawie wszystkie VB konstrukcje można bardzo łatwo przekonwertować do C# - również rozejrzyj się po SO, pytania takie jak http://stackoverflow.com/questions/4761521/get-the-email-address-of-the-current-user-in-outlook- 2007 może ci się przydać – jdphenix

Odpowiedz

5

Spróbuj tego, z http://msdn.microsoft.com/en-us/library/ff462091.aspx:

using System; 
using System.Text; 
using Outlook = Microsoft.Office.Interop.Outlook; 

namespace OutlookAddIn1 
{ 
    class Sample 
    { 
     public static void DisplayAccountInformation(Outlook.Application application) 
     { 

      // The Namespace Object (Session) has a collection of accounts. 
      Outlook.Accounts accounts = application.Session.Accounts; 

      // Concatenate a message with information about all accounts. 
      StringBuilder builder = new StringBuilder(); 

      // Loop over all accounts and print detail account information. 
      // All properties of the Account object are read-only. 
      foreach (Outlook.Account account in accounts) 
      { 

       // The DisplayName property represents the friendly name of the account. 
       builder.AppendFormat("DisplayName: {0}\n", account.DisplayName); 

       // The UserName property provides an account-based context to determine identity. 
       builder.AppendFormat("UserName: {0}\n", account.UserName); 

       // The SmtpAddress property provides the SMTP address for the account. 
       builder.AppendFormat("SmtpAddress: {0}\n", account.SmtpAddress); 

       // The AccountType property indicates the type of the account. 
       builder.Append("AccountType: "); 
       switch (account.AccountType) 
       { 

        case Outlook.OlAccountType.olExchange: 
         builder.AppendLine("Exchange"); 
         break; 

        case Outlook.OlAccountType.olHttp: 
         builder.AppendLine("Http"); 
         break; 

        case Outlook.OlAccountType.olImap: 
         builder.AppendLine("Imap"); 
         break; 

        case Outlook.OlAccountType.olOtherAccount: 
         builder.AppendLine("Other"); 
         break; 

        case Outlook.OlAccountType.olPop3: 
         builder.AppendLine("Pop3"); 
         break; 
       } 

       builder.AppendLine(); 
      } 

      // Display the account information. 
      System.Windows.Forms.MessageBox.Show(builder.ToString()); 
     } 
    } 
} 
+1

cudowne dzięki, że użyłem poprawnego skryptu i to odniesienie pomogło w wielu prostych kwestiach, nie wliczając poprawnych referencji, nie zapomnisz, że jeden =) –

Powiązane problemy