I get a runtime error trying to impresonate a user - code below
Service = New ExchangeService()
Service.Credentials = New NetworkCredential(username, password)
Service.ImpersonatedUserId = New ImpersonatedUserId(ConnectingIdType.SmtpAddress, emailAddress)