I have been crawling through google for months trying to find a way to have my Linux (Ubuntu) PC connect to our company Microsoft SBS 2008 server running exchange 2007. Finally I have a working solution. I am using a program called DavMail (http://davmail.sourceforge.net). This little application is absolutely fantastic!!! I can run Thunderbird from my Ubuntu workstation with access to exchanges email, calendar, tasks and contacts.
DavMail uses Exchanges OWA to retrieve email, calendar, tasks and contacts. Its available Linux or Windows. The first time I set it up I installed it on my Ubuntu workstation. It worked well but was quite slow to retrieve information. If you don't have admin access to your windows server installing it locally would be your only option. I, on the other hand have admin access to our company SBS server so I installed the windows version on SBS and found the experience much more responsive, I guess the bottle neck is when DavMail accesses OWA.
Anyway I though I would document the steps I have takes to setup my workstation access to exchange 2007 because it was quite frustrating trying to find a solution that works as well as this.
Step 1. Install Thunderbird with the Lightning extensions.
Step 2. Download and install DavMail.
Option 1) Install DavMail on your local PC, this option works but is not recommended because the speed is a bit slow. If you don't have admin access to your windows server and your windows sysadmin is a tool, then this is the only way I have found to access exchange reliably from Ubuntu. (there is an exchange 2007 add-on for evolution but I couldn't get it to work, just kept crashing and I'm not a huge fan of evolution).
Option 2) Install DavMail on your Exchange Server, I found that this works a lot faster and if you have more then 1 workstation wanting to use DavMail then they can all connect to the one instance of DavMail running from your Windows server.
When DavMail is installed and run as an application the only thing you need to do is configure the URL for your exchange OWA, if your running it from your workstation the the URL would be something like https://excahnge.server.local/owa. If your setup is like mine I used the URL of https://localhost/owa because I am running DavMail from our Exchange server so other non windows users can access their exchange calendars, tasks, contacts, etc. We even have 2 guys running OSX and they can access their calendars etc. from their workstations. (I think exchange support for OSX will be built into the OS in the next major release).
After you have configured the URL the next thing to do is to configure the ports that each of the services will run from, I like to try and leave things as simple as possible so I left the defaults in place but after undergoing one of the many reboots our SBS Server needs DavMail refused to to start saying that port 1025 was in use by another process, so I had to change the port to 1125. I would recommend unticking any of the unwanted ports, for example I have no use for POP3 or IMAP as exchange supports these protocols by default and the end user experience is better using the exchange version of these protocols. If you don't have access to your exchange server to enable these protocols then your left to use the DavMail ports which work but are a bit slow if you have a lot of email. My exchange mailbox if over 2gig so sucking that down through OWA was painfully slow, however using the native exchange IMAP it was fine.
Step 3. Configure Thunderbird
Email.
I am using native exchange IMAP for my email in Thunderbird, there is no tricks to setting this up, its pretty standard, I am using ssl on port 993 so my email is sent encrypted over the company network (if the security is their you should use it).
In my config I am using IMAP for my email on my workstation and using the exchange (activesync) protocol to access my mailbox from my iPhone. The problem I was having was when I deleted an email from my workstation (IMAP) the email would still show as being in my inbox on my iPhone until I purged my email from Thunderbird. This is not a hard thing to do just right click on the folder you have deleted the email from and select compact. But really... Who is going to remember to do that every time they delete an email or leave there PC. So I went back and asked Google for a solution and sure enough Google has the answer...
In Thunderbird:
Edit -> Account Settings -> Server Settings -> "when i delete a message" Move it to the Trash folder.
Then:
Edit -> Preferences -> Advanced -> Config Editor -> mail.imap.expunge_after_delete = True
then when you delete an email from your inbox it will be moved to the Trash and deleted from the inbox. Perfect.
Note: I keep only emails that I am currently working on in my inbox so I never really have more then about 20 emails in my inbox at any one time, I think doing this make working with IMAP a little more friendly. If you have a few years backlog of email in your inbox your Thunderbird seems to run a bit slow (but I am using an old POS PC).
Calendar.
Ok this is where it get interesting, to add a calendar to Thunderbird is really easy just click Calendar from the file menu and select "New Calendar" then "On then Network" then CalDav and in the Location enter
"http://exchange.server.local:1080/users/user@example.com/calendar"
It took me a few days to figure out that who ever setup our exchange server setup my email address with a capital letter for my email address eg. User@example.com instead of user@example.com. The CalDav location string is case sensitive so be sure to type it all correctly or it won't work.
Now you should have Email, Calendar and Tasks working in Thunderbird. All that is left is contacts.
Contacts.
So far I can't get contact to display but I can search for them and the auto complete when typing email address in the to, cc, etc section works. To setup contacts in Thunderbird goto
Edit -> Preferences -> Composition -> Addressing -> Directory Server -> Edit Directories -> Add
Name: (I called mine exchange)
Hostname: excahnge.server.local
Base DN: ou=people
Port Number: 1389
Bind DN: domain\user
Then OK.
ALL DONE. you should now have a pretty nice user experience connecting to exchange 2007 from Linux.
Bookmarks