Exchange Architecture

From Evolution

Contents

[edit]

Brief Overview

Evolution Exchange is the connector between Evolution and Microsoft Exchange servers. It uses webDAV and HTML+RPC to communicate with Microsoft Exchange servers.

[edit]

Exchange Connector Design

 Description

[edit]

Short notes

  • Exchange Specific features in Evolution

Here are the list of features apart from mail/calendar/tasks/address book support

1. Exchange account Setup: This is different than all other account setup plugins

2. Password Expiry notification

3. Change password

4. Out of office

5. Delegation

6. Quota

7. Folder size

8. Public - favorite folders

9. Other user's folders (foreign folders)

10. Hierarchy support in addressbook, calendar, tasks folder trees

11. Sharing folders

12. Autoconfiguration


  • Autoconfiguration

The tool exchange-account-setup (formerly called as ximian-connector-setup) provides a mechanism to pick up the details from the configuration files and configure the account automatically. This would be more useful for large scale deployment (at ICICI bombay it was used).

A configuration file needs to be created at /etc/ximian/connector.conf or ${PREFIX}/etc/connector.conf, which need to have the details like OWA-URL, Global-Catalog, GAL-Limit, Disable-Plaintext, NT-Domain and Domain (windows 2000 domain), which will be read during account setup and user will be prompted only for password.

Also, if the user provides the name, owa url and password and DNS is configured properly and NTLM is allowed (not plaintext) then GC server, Full name of the user, e-mail id etc can be auto-detected.


  • Getting rid of exchange process

For 2.4, the Connector team started working on moving Connector code into E-D-S and as part of it, the basic webDAV/HTML+RPC communication code is moved to E-D-S under servers/exchange/ directory. Exchange specific feature implementations are moved as plugins in Evolution, under plugins/exchange-operations. In-order to move completely, we would need to remove Camel/Mail stub implementation and make it work like other camel providers.


  • Exchange Mailer

As mentioned above, Connector uses webDAV and HTML+RPC to operate with Microsoft Exchange. For Connector to work, both GAL and OWA server has to be available outside any firewall.

  • Other alternatives
    • Evolution brutus
    • Openchange libmapi
[edit]

Debugging Exchange Connector

  • Techniques
    • E2K_DEBUG logs
   E2K_DEBUG=1       ==> Print each request and response
   E2K_DEBUG=2       ==> plus all request and response headers
   E2K_DEBUG=3       ==> plus bodies (except text/html)
   E2K_DEBUG=4       ==> plus global catalog debug too 
   E2K_DEBUG=5       ==> plus text/html bodies too
   E2K_DEBUG=[1..5]m ==> mail stub debugging, everything read to or written from the stub socket.
    • Console log messages
    • ebrowse tool
    • test programs
[edit]

Exchange Lab setup

In Exchange connector main problem all have faced is the lab setups. Setting up the lab and maintaining it requires lots of effort.

    • Some tips:

1. Always update the virus software when IS sends a mail.

2. Have a setup which covers

  http
  SSL (https)
  FBA
  Multiple server running services: AD, GC, OWA, OWA FE, Exchange, Public Folders on different servers
  GC server behind firewall
  All the servers behind the firewall and only OWA exposed.
  NTLMV2
  large mail boxes
  huge number of users
  large number of bulky public folders

3. When you set up something always note the steps and document it.

4. Restart IIS whenever you feel server is not responding properly, if not fixed, reboot the server once ;-)

5. When you set up a mail account in outlook, un-check the cached mode option. If you select it and if you are a configurung an account with large mailbox, you will lose them, as they will be moved to the local folders.

6. Google if you are stuck.

[edit]

Top Issues to be fixed

1. Make ebrowse tool work

2. Have a single connection with server, solves all sync problems and cleans up the code. Also it'll be easier to maintain

3. Allow create/modify/delete/rename options to GAL

4. Integrate auto configuration capability with Account setup and get rid if exchange-connector-setup tool

5. Fix the problem of exchange-connector getting loaded if installed. It should load only when an exchange account is configured.

6. Support NTLM V2 and get the certificate based authentication work, of Jacob Berkman, upstream.

9. Fix some usability issues like, need to restart to access first public/other users “mail” folder etc.

10 Allow multiple account configuration.

11. When GC is inside firewall, all the functionality that doesn't require GC should work. Also, try and find ways to access GC through OWA url.

12. Each component should query the server for items of its respective type - this increases performance of each components. If possible, do a benchmark with having persistent search folders in MS Exchange and using it as data-view in Connector.

13. GAL / LDAP crashes - just quite a bit.

14. Contact lists support for Exchange address books

15. Kerberos authentication - re-using system-wide kerb ticket

16. Native PST import support.

17. Mail doesn't appear bug - quite serious and need to find reliable steps to reproduce

[edit]

Other Resources

  • Books

We have two books transferred in the order Dan -> Surf -> Sush -> Chen -> Varadhan -> Johnny (?)

  • Documents downloaded
  • Bookmarks
[edit]

Exchange Connector customer details

under construction

[edit]

Exchange Developer docs

Here are the description of some important classes in Exchange connector

ExchangeAccount

Autoconfig

E2kContext