Showing posts with label MDaemon. Show all posts
Showing posts with label MDaemon. Show all posts

Tuesday, June 27, 2017

MDaemon migration: Suggested Contacts to Office 365 / Exchange

As usual we cannot keep ourselves out of trouble.  "Trouble" in this case meaning "adding more migration features so legacy calendar systems hate us even more."

The latest is migrating Suggested Contacts from MDaemon into Office 365 / Microsoft Exchange.

This has subtlety.  As is the case with Notes going from MDaemon into Exchange, we cannot place them directly in the folder "Suggested Contacts."  On Suggested Contacts, see this link.  

So we insert into the main Contacts folder (usually under an interface tag of "People" now) and give it the category "Suggested Contacts" to make them easy to find. 

Viewing your Contacts as a List and looking at Categories you'll see them this way:



As the above link documented,  "You can no longer add contacts to the Suggested Contacts folder."

To set this up in our migration tool we added a new option to the user interface.


We also have field confirmation that our migration works with two-byte character systems, such as Chinese:




Thursday, November 05, 2015

#MDaemon to @Office365 International Migrations - Character Sets Deuxième partie

FOLDER NAMES!

Dagnabbit -- we forgot folder names in UTF-8.

This was one where the file system was replacing the “Tâches“ with “T&AOI-ches”

So we updated the code to handle it,

The latest build,  mCalreader_v4.1.17 addresses this issue.

To be safe, I recommend deleting these four lines in the XML config file and then re-running the code’s setup/configuration if you are already in a migration:

  


NB: Don’t worry if the config values look odd.  We save the localization values in “HTML-Friendly” format, so the “&” becomes “ampersand;”  (except in Blogger it gets interpreted into something not plain text)

For the curious, this is the table so you can handle your own cases:

           

Note that this is also a problem in email migration:  http://www.linux-france.org/prj/imapsync_list/msg01976.html

Tuesday, November 03, 2015

#MDaemon to #Office365 International Migrations - Character Sets

Let's say that you are happily migrating calendar data from MDaemon to Microsoft Office 365 or Exchange and you're someplace other than the USA with various accented characters.

Most times we've had no problem out of the box with the MDaemon calendar migration (and we see many migrations in Europe).

But one French site reported "é"s (as well as every other accented character) coming out incorrectly.  For example:


This is a classic symptom of the original character set being UTF-8 and that not meshing with the default Windows Western European character set.  Note that the e-acute in "Migré" was inserted under program control as a string already in the Windows character set.

No worries.

Modify the _Config_mCalReader.xml file to contain the following line:


Run your insertion.  It'll come out correctly in Exchange:



Saturday, July 25, 2015

Monday, March 02, 2015

MDaemon Migration European Translations - Thanks are in order

This is a shout out of THANKS to the folks who gave us high-quality translations of German and Dutch for the MDaemon calendar migration interface as well as helping us debug some issues in the European market.  

Christian in Germany,  THANK YOU!!!

In the Netherlands thanks go to Jesper Plass at JP Allaround-ICT.  

Jesper also found us one of the weirdest things we've seen in field data in a while: recurring appointments with end dates in the year 4501 AD.  How that happened in real life we have no idea, but we have already fixed the MDaemon migration code.

Latest version of mCalReader is 4.1.08 and contains the above fixes (as well as one that came out of Canada this weekend).

Thursday, February 26, 2015

Another useful link on #MDaemon migration to #Exchange via Linux

Gentle Soon-to-be-MDaemon-free Migrating Reader,

Ms. Migrations recommends reading MDaemon to Microsoft Exchange migration for real-world experience going from MDaemon on Linux to Exchange. 

This article focuses on email using imapsync (for email, just use imapsync, really) and mentions nothing about calendars, but that of course is what we are here for.


Tuesday, February 10, 2015

#MDaemon Notes migrating into #MSExchange

We got a request from some friends in Canada for MDaemon Notes to migrate into Exchange.

Now there is a small problem with this.  Exchange Web Services does not support creating Notes.

On the other hand over the last fourteen years we all could have gotten doctorates for our work doing the impossible with Microsoft Exchange.  So we insert the Notes into Tasks.


Wednesday, February 04, 2015

European #MDaemon Calendar to #MSExchange Migration: Field Notes

Short answer:  Version   4.0.xx of our MDaemon calendar migration tool works.

A site in Germany (thanks, guys!) did the pioneering field work that resulted in some minor fixes for time zone issues (and will result in a few more changes).

But we have confirmed that European time zones in translation, international characters, and non-US date formats are working fine.

And we've added the capability to work with localized MDaemon folders (so Calendar becomes Kalender in a German language pack).

One of our guys put the extra effort in to translate our screens as well (these will change):


So if you folks in Europe want to migrate your MDaemon calendars drop us a line.

Friday, September 05, 2014

Disappearing Contact/Calendar item body fixed in Exchange 2013 CU6

We blogged about clients reporting problems with notes after inserting contacts and calendar items from Beehive and MDaemon migrations April, '14.)


KB 2975003 confirmed this was a problem! The KB says: "...compose or edit a Calendar item by using Outlook Web App...and then save the item. When you open the item in Microsoft Outlook 2013 or Outlook 2010 in online mode, the body of the item disappears."  We scrambled and updated our code to set MAPI codes to fix the problem in our code.  But they reported their end users were still having the same problem on NEW items.



Now there is a fix: install Cumulative Update 6 for Exchange Server 2013: 2961810

Tuesday, June 10, 2014

Migrating #MDaemon Public Distribution Lists to #MSExchange

To Migrate MDaemon Public Distribution Lists to Microsoft Exchange using our tools, follow this procedure:

  1. Create a new directory to hold the processed group files.
  2. Launch the mCalReader_ParseGroupFiles application.  Browse to the MDaemon server directory for the group files (these all have an extension of *.grp and the format NAME@Yourcompany.com.grp), and the output directory from Step 1.  Ensure the file extension pattern matches your group files (Note: it defaults to @YOURCOMPANY.com.grp)
  3. Press “Go.” The processing should happen quickly. Then exit the program.  In the directory from Step 1 you should have a file called Distributionlists.csv.
  4. Move the files and the shell cmdlet “DistGroupCmdlet.ps1”  to the Exchange server (or any shared/accessible directory)
  5. Edit DistGroupCmdlet.ps1:
a. Modify $MyDistFileList to point to the Distributionlists.csv file.
                              i. Note:  the shell will create distribution lists for all entries in this file.  Remove entries that you do not want migrated/created.
b.   Modify $myMigratedOU to point to the OU that will contain the distribution lists.  Note this is a PATH to the OU, and not a typical OU identifier (e.g., ou=xxx,dc=my,dc=com),  Sample OU:, $myMigratedOU = "orca.sumatra.local/Clients/YOURCOMPANY/Lists"
6.Launch Exchange PowerShell, change directory to the location of the script and distribution list files, then run the script: .\ DistGroupCmdlet.ps1.
Notes:                                     
·         If you want to test a few distribution lists:
o   Run the EXE to parse all of the GRP files.  The EXE produces the file  Distributionlists.csv
o   Edit that file, and leave the first line (header) and only those groups you want to test.  Then,
o   Copy the Distributionlists.csv, the supporting group CSV export files, and the PowerShell script to Exchange
·         Accounts:
o   Since there is a possibility that users might not exist in Exchange, the script creates the distribution list first, then adds users to the list one user at a time. 
o   If the user does not exist in Exchange, the cmdlet throws an error but continues.
o   Also, the tool does not change any of the SMTP address domains, e.g., email addresses such as “@YOURCOMPANYmail.YOURCOMPANY.com” will be migrated as “@YOURCOMPANYmail.YOURCOMPANY.com”, and not “@YOURCOMPANY.com.”

By the way, this was field-proven as the last stage of a migration at a 300 user site over this past weekend.

Wednesday, April 02, 2014

Distribution Lists Now Working in MDaemon Calendar Migration

We've been on a mission to completely automate an MDaemon to Exchange migration.  Email, contacts, calendars, the works.  We'll tell you more about that later after it's fully field-proven.

In this case "the works" also means MDaemon private distribution lists (which in the language of Exchange/Outlook are called "groups") which we have added to our calendar migration application since (as glorified contacts) that is where they belong.

Post-migration in Office 365, it'll look like this:


We do the smart thing in this case:  if a contact on the list is on the legacy domain and needs to be mapped to a new domain or a different email, we automatically do that.  Users outside the legacy domain we leave alone.

Please note: In Exchange, users create distribution groups by linking to existing contacts (or contacts from Active Directory). This way, when a contact name/email address changes, the distribution group gets updated.  However, in the case of this migration, MDaemon does not provide any  indicator if the entry is an existing contact.  We don’t want to automatically create contacts because if they do exist, the user will see double contacts – something that will confuse them.  So communicate to your users that if an email address changes in the private group mailing lists, they will have to either manually edit and fix the name, or delete the name and link it to a previously created contact.

Thursday, March 27, 2014

Fully automating an #MDaemon to #MSExchange 2013 migration

One of our customers wanted to migrate from MDaemon to Exchange in stages (vs our typical "big bang".)  A staged migration is more delicate.  It requires you configure (and then re-configure) active directory accounts and Exchange mailboxes pre- and post- migration.  It's not hard, just a lot of steps. This called for a script!  And so, we did.

We have successfully field-proven that an MDaemon to Exchange 2013 on-premises migration can be fully scripted.

We're going to outline our approach:

First some background on the main show: email and calendars: 
  • For email we used and recommend imapsync.  It's an excellent, effective, and efficient product.
  • For calendars, tasks, contacts, and distribution lists we wrote our own application.
But a full migration methodology has to include more than just moving the data.

So before any email or calendars are migrated we take care of:
  • Reading the MDaemon user list (and passwords)
  • Provisioning users -- first as Exchange contacts, then as mail-enabled users
  • Re-configuring Outlook to point to your Exchange server and removing the MDaemon Outlook Sync. (Note: there are publicly available scripts.  But we found they don't work. After hours of debugging, we gave up and wrote our own.)
  • Pre- and Post-cut over scripting so that legacy emails are moved to the target system, and new emails redirected to the target system.
If you have a few dozen users, it's difficult to make this cost-effective and you might as well do it on your own  (Hint:  you can export PSTs from MDaemon, then import those PSTs into Exchange.)  Tedious and time-consuming, yes, but free.  This assumes your time is worth less than the cost of third-party migration tools.  If it takes as long to just DO it (apologies to Nike) as it does to deploy a third-party customized method, just do it.

If you have several hundred users and want to license our tools and methods, you can contact us.

Tuesday, March 11, 2014

Scripting Sumatra's MDaemon to Exchange calendar migration tool

We've turned the mCalReader application for migrating calendars from MDaemon to Exchange into a scriptable application.

So from the Command Prompt or PowerShell you can issue the commands

mCalReader /usersrc:  /userex:  /cfg: /undo

What each of these mean:
  • /usersrc:  the full email address of your source user on MDaemon.  e.g., zyg@sumatra.local
  • /userex:  the full email target address on Exchange.  e.g., zyg-furmaniuk@sumatra.onmicrosoft.com
  • /cfg:  the full path to the configuration file
  • /undo:  remove the data mCalReader inserted for this user.
So a typical scripted insertion for a user would be:
mcalreader 
  /usersrc:zyg@sumatra.local 
  /userex:zyg-furmaniuk@sumatra.onmicrosoft.com 
  /cfg:"C:\Docs and Sets\Administrator\Desktop\mCalReader\_Config_bCalReader.xml"

To remove Sumatra-inserted data:
mcalreader 
  /usersrc:zyg@sumatra.local 
  /userex:zyg-furmaniuk@sumatra.onmicrosoft.com 
  /cfg:"C:\Docs and Sets\Administrator\Desktop\mCalReader\_Config_bCalReader.xml"
  /undo

Each individual user using this method will get their own individual log file:

How do you set the Configuration file?  Simple: Via the user interface to the tool.  You CAN edit the XML if you want, it's pretty straightforward, but the interface exists to make it as simple as possible to test that access to Microsoft Exchange is working.


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).

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

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


imapsync.exe 
--host1 147.1.41.1  
--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.  

Permissions
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 64.90.182.55 and 206.246.118.250).
  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: 
https://outlook.office365.com/EWS/Exchange.asmx

Monday, January 13, 2014

MDaemon Calendar Migration to Exchange

We got a wild request for migrating calendar data from MDaemon to Exchange and, seeing as how we're always looking for both an interesting challenge and a profitable business extension we brought up a server and created our traditional users and conference rooms.


Short answer: oh yeah, we can migrate the calendar, tasks, and contacts into Exchange. There are a few obvious issues and some amount of work to be done but there is no doubt about it.

Now the hard part: Is there anyone else out there who wants this?  

We're not sure that this is used outside of small and medium businesses, and they are not our traditional client base.