How to: Create Exchange 5.5 Mailboxes

This example shows how to provision a Microsoft Exchange 5.5 mailbox object in Forefront Identity Manager Synchronization Service (FIM Synchronization Service).

Note

Microsoft Exchange 5.5 is deprecated. For information about performing these steps with the current version of Exchange, see How to: Create Exchange Mailboxes.

Attribute Inclusion List

You must select the following attributes from the Select Attributes property page for your Exchange 5.5 management agent to provision an Exchange 5.5 mailbox:

  • uid

  • cn

  • rdn

  • mail

  • mailPreferenceOption

  • rfc822Mailbox

  • textEncodedORaddress

  • MAPI-Recipient

  • Home-MDB

  • Home-MTA

  • Assoc-NT-Account

  • NT-Security-Descriptor

The following examples show how to use a rules extension to provision an Exchange 5.5 mailbox. You must add a reference to logging.dll to use the LogException method.

Public Sub Provision(ByVal mventry As MVEntry) _
       Implements IMVSynchronization.Provision

      Dim ex55MA As ConnectedMA
      Dim csentry As CSEntry
      Dim nickName, displayName, smtpAddress, orAddress, mailboxMDB, mailboxMTA As String
      Dim ntAccount As Byte()
      Dim dn As ReferenceValue

      Try
         If "person" = mventry.ObjectType Then

            ex55MA = mventry.ConnectedMAs("Fabrikam Ex55 MA")

            nickName    = mventry("mailNickname").Value
            displayName = mventry("DisplayName").Value
            smtpAddress = mventry("SMTPAddress").Value
            orAddress   = mventry("ORaddress").Value
            mailboxMDB  = mventry("homeMDB").Value
            mailboxMTA  = mventry("homeMTA").Value
            ntAccount   = mventry("objectSID").BinaryValue

            ' Construct the distinguished name.
            dn = ex55MA.EscapeDNComponent("CN=" + mventry("cn").Value).Concat("cn=Recipients,ou=fabrikam,o=com")

            If 0 = ex55MA.Connectors.Count Then
               csentry = ExchangeUtils.Create55Mailbox(ex55MA, dn, nickName, displayName, smtpAddress, orAddress, mailboxMDB, mailboxMTA, ntAccount)
            End If

         End If

         ' Log and rethrow any exception.
      Catch ex As Exception
         Logging.Logging.LogException(ex, "Provision", "Caught exception", False)
         Throw
      End Try
   End Sub
void IMVSynchronization.Provision (MVEntry mventry)
       {
          ConnectedMA ex55MA;
          CSEntry csentry;
          String nickName, displayName, orAddress, smtpAddress, mailboxMDB, mailboxMTA;
          byte[] ntAccount;
          ReferenceValue dn;

          try
          {
             if( "person" == mventry.ObjectType )
             {
                ex55MA = mventry.ConnectedMAs["Fabrikam Ex55 MA"];

                nickName    = mventry["mailNickname"].Value;
                displayName = mventry["DisplayName"].Value;
                smtpAddress = mventry["SMTPAddress"].Value;
                ntAccount   = mventry["objectSID"].BinaryValue;
                orAddress   = mventry["ORaddress"].Value;
                mailboxMDB  = mventry["homeMDB"].Value;
                mailboxMTA  = mventry["homeMTA"].Value;

                // Construct the distinguished name.
                dn = ex55MA.EscapeDNComponent("CN=" + mventry["cn"].Value).Concat("cn=Recipients,ou=fabrikam,o=com");

                if(0 == ex55MA.Connectors.Count)
                {
                   csentry = ExchangeUtils.Create55Mailbox(ex55MA, dn, nickName, displayName, smtpAddress, orAddress, mailboxMDB, mailboxMTA, ntAccount);
                }
             }
          }

          // Log and rethrow any exception.
          catch(Exception ex)
          {
             Logging.Logging.LogException(ex, "Provision", "Caught exception", false);
             throw;
          }
       }

See Also

Reference

Create55Mailbox

Concepts

Microsoft Exchange Connected Data Sources