Tuesday, February 25, 2014

imapsync vs PST: Tonnage and Speed

Our first lab test of volume for imapsync resulted in an average throughput of 11.8 message/second, or 830 kb/second transferring 3013 messages with 358 skipped messages (I think that had to do with headers and the way we treated them).

We then went into the real world with a Boston-based firm and compared moving PSTs to moving via imapsync.

One PST for a user took 15 minutes to export client-side.  We did not even bother continuing to time after that.

Using imapsync (for email) and our mCalReader (calendars, tasks, contacts) we read that user AND TWO OTHERS and inserted all three in 8 minutes.

Or imapsync has at LEAST 6 times the throughput.

Our conclusion was that imapsync is MUCH faster.  Our further conclusion is that for purposes of migration PSTs fall far short of ideal.  PSTs really suck to tell you the truth.

In going through some of our previous posts, I discovered an interesting factoid that we published years ago when comparing client-side migration speed vs. server-side migration speed.  Server-side was 2-3 time faster on insertion than a client side migration just for calendars.

Sunday, February 23, 2014

MDaemon Mail to Exchange 2007 via Microsoft Transporter Suite

Gentle reader,

Today we will use Microsoft Transporter Suite for migrating email from MDaemon to Exchange 2007.

Why?  Obviously because we're going to get to moving calendars for this legacy product, but you only get to calendars if you're also doing email and we get asked about email, so we're documenting it here.

This is for on-premises Exchange migration to Exchange 2007 ONLY.  You want to go into Office 365, the read our previous article How to Migrate Oracle Beehive Email into Office 365 because the method will be the same.  

Why 2007?  Believe it or not Exchange 2007 is still out there, and we still get questions on it.  Might as well deal with reality.

We've also tested email migrations with imapsync (spoiler alert: imapsync is MUCH BETTER).

But it starts with Transporter since it's there, it's free, it's from Microsoft.  What is not to love? Quite a few things, actually, but free is a big draw.

First, download and install it.  But: WHERE should you download it and install it?

You won't even be able to get to the documentation (all in the form of help files) until after you install it -- so I'll cut to the chase:  you must have Exchange Recipient Admin rights and Exchange Impersonation rights on a computer with the Client Access server role installed for Exchange 2007. Later version of Exchange will of course require slightly different methods of setting these permissions (and we've blogged on those enough).

Refer to this section of the in-application help.

For MDaemon we're going to be using the Transporter for Internet Mail. The installer seems to already know we do not have Lotus Notes installed,

but  then very helpfully reminds us in case that was what we were really after.  

We're not in this case, so let's just accept the EULA and get this done.

Now we can actually execute the Transporter

You are now in a position to actually start defining which user mailboxes you will move.

But you need to give it a list in a CSV-- and you notice a distinct lack of a user manual. What should the format of this list be?

In one of the few times I will ever write that the Help Files are actually.... HELPful, I am bidding you to Click on Help and read them.

The format is then readily copied and uploaded.

My file looks something like this:

You'll see something like this and are ready to import.

Now migrate your email.

Friday, February 21, 2014

Corrupt MDaemon meetings in a migration

We found (in the wild) conditions where MDaemon meetings were corrupt, in this case missing their Organizers or Planners.

What to do?  They're corrupt and may or may not display in an MDaemon client -- but they are in the data.

Under our usual rubric of "it is better to recover everything we can and let the user delete if they do not want it -- because it is harder to re-create something not there than delete something that is" we recover the meeting and tag it with the category "Meetings_MissingOrganizer"

So you could search for those in Outlook post-migration and make decisions about them.

Tuesday, February 18, 2014

MDaemon Mail to Exchange via imapsync

Gentle reader of migration mindedness,

Today we will use imapsync for migrating email from MDaemon to Exchange.

Why?  Obviously because we're going to get to moving calendars for this legacy product, but you only get to calendars if you're also doing email and we get asked about email, so we're documenting it here.

Using imapsync will cost you all of 50 Euros.

Goodness, gracious it is worth it!  

This application has significant advantages over other products:  
  1. It is really simple to install and use.
  2. The "sync" in the title is serious.  You can upload all the data from a user set during working hours and then cut over the incremental changes starting on a Friday after closing time.
  3. You can also use imapsync on a Linux environment as well as a Windows environment.
  4. It is all in your control as opposed to run through someone else's data center or through a major integrator looking to run up hours.
  5. It is very reasonably priced with the most liberal license I have seen.

We use the Windows version in our testing.

imapsync runs exclusively in the Command Prompt.

First off, please make sure you have enabled IMAP on your Exchange 2013 server.

Migrating from MDaemon to Office 365 looks something like this (if you use individual passwords for users).

--host1 --user1 zyg@sumatra.local --password1  "XXXX" 
--host2 outlook.office365.com --user2 zyg@sumatra.onmicrosoft.com --password2 "XXXXX"  

If you set up a service account with FullAccess, you can accomplish a migration with a command like this:

--user1 jimi.hendrix@sumatra.local --password1  "XXXX" 
--host2 outlook.office365.com --port2 993 --sep2 / 
--user2 jimi.hendrix@sumatra.onmicrosoft.com  
--authuser2 riuliano@sumatra.onmicrosoft.com 
--password2 "XXXXX"  --ssl2

Note in  the above, for an Office 365 target system we need to use the "--sep2 /" command. 

Executing will give you some excellent statistics and feedback.

Other things to be aware of
Exchange Configuration Requirements:
Before you can run imapsync, you will have configure Exchange for IMAP.  This requires two steps.

Step 1: Start two IMAP4 services (and configure those services to automatically start if you wish.)

By default, in Exchange 2013 the IMAP4 service(s) are stopped:

To start those services: On the computer running the Client Access server role:
1. Set the IMAP4 service to automatically start:
     Set-service msExchangeIMAP4 -startuptype automatic
2. Start the Microsoft Exchange IMAP4 service.
     Start-service msExchangeIMAP4

On the computer running the Mailbox server role:
1. Set the Microsoft Exchange IMAP4 Backend service to start automatically.
     Set-service msExchangeIMAP4BE -startuptype automatic
2. Start the Microsoft Exchange IMAP4 Backend service.
             Start-service msExchangeIMAP4BE

In our case, the CAS and Mailbox server roles are on the same box:

Step 2: Configure Exchange IMAP4 External Connection so users can see (and thus use) the IMAP server settings

Use the powershell SET-IMAPSettings cmdlet, e.g.:
     Set-ImapSettings -ExternalConnectionSetting {:993:SSL}.

This requires you restart IIS.

This is true even if you are working within the firewall  Thus in our case, the External Connection is the same as the InternalConnection.

Finally,  Verify things are working, using OWA’s Options select Account, then pick the “Settings for POP or IMAP access” link.

These sample scripts for major migrations / multiple users will help you out a lot.
I really like the way this user lays out a basic sequencing for migrations including how and when to change your MX records.

And on the more than crucial need for advance planning and testing, please read this thread.

Thursday, February 13, 2014

#MDaemon Calendar Migration to #MSExchange / #Office365: Video and Documentation

We have calendar migration from MDaemon into Exchange working.

Here's the video.

The migration features are pretty much all dealt with in the video.

The main screen of the application gives you our usual set of options:

And the configuration holds no surprises.

The site we're doing this for has decided it's more important to migrate in a phased sequence of groups of users, so we're taking the calendars over as "flat" but with information on attendees and status in the Agenda/Notes body.  If there's demand for a full-state method we can do it.  But this keeps costs down.

Mapping Users
If you have a user in your legacy domain named "zyg" and in Exchange the ID is "zyg-furmaniuk", you enter the following line in the exceptions.txt folder:
When you validate, you will find the mapped (i.e., correct for the target) address.
Note that in the above example Room.222 did not validate, so either our mapping is wrong, or the account on Office 365 is not set up properly.  

You will need a service account on the Exchange side.  This account needs permission to write to all accounts you're mapping into.  We've already blogged on permissions a lot. 

Firewall Requirements 
  1. Your fire wall must be configured to allow Time Sync (we need Port 13 and we cycle among time servers, the top two being and
  2. Your computer time should not differ from the US Navy Atomic Clock time by more than 1 hour or mCalReader will inform you.
Why do we require this?  Short answer: Digital Rights Management and version control.

Determining your EWS URL
For on-premises Exchange, the EWS URL formula is HTTPS://CAS_server/EWS/Exchange.asmx
In ON-PREMISES you will usually have your IIS set for Windows Authentication (see http://technet.microsoft.com/en-us/library/gg247612.aspx for more details). This is also the default in hosted Exchange. Should you need to change this you may do so in the _Config_XML file by changing the HTTPAuthType parameter (options are Basic, Negotiate, ntlm, and Kerberos)
NB: You hear us talking about Exchange being a moving target in a migration. That’s true here. The default is Negotiate in Exchange 2013, and Basic in Exchange 2007 and 2010.

For Office 365 it is: 

Tuesday, February 11, 2014

Sumatra and MEC March 30-April 2

Two folks have asked us about us being at MEC  #IamMEC.  One's wanting calendar migration (and at over five thousand users we can talk).  The other about a private label for the holiday cmdlet.

In general we do not do conferences, but we think we're going to head to this one.   Contact us if you want to get together for a beer.  Like everyone else in Exchange programming we certainly owe Glen Scales one.