I've already hinted in Migadu.com CalDav and CardDav auto-discovery that I've moved my personal email, calendar and contacts away from Google to Migadu.
A little more than a month has passed now and I want to briefly recap of what went well and what didn't.
Migadu's primary focus is email and so far I've been very pleased with the on-boarding process, like the DNS setup for my domains and the admin interface overall.
Migrate emails
The migration of my Gmail address was really straight-forward
by using
Imapsync.
However, since that particular address has been in used for 15 years
it accumulated quite a bunch of emails and Gmails All Mail
folder that contains a copy of each and every email in all folders
(yes, their labels are folders with copies of your emails)
didn't particularly help with the mailbox size.
I took the better half of a week to fully sync my mailbox from Gmail to Migadu.
I'd also recommend to use imapsync --dry ... to verify
what imapsync will perform.
Support for plus addressing
Support for plus addressing was a must for me, but the default
configuration in Migadu is a little weird to me taste.
They basically
auto-create folders for the detail part. So emails sent to timo+test@furrer.life
would automatically end up in an IMAP folder called test.
That folder is also auto-created, meaning that strangers are allowed
to create IMAP folders by simply sending an email.
I'm not sure under what circumstances someone would ever want that.
Anyways, they document how to disable it. Make sure though that
you account for the rewrites in your Sieve scripts,
because the Delivered-To header will then point
to timo@furrer.life instead of timo+test@furrer.life.
Luckily, we have the X-Envelope-To header
to use (that contains the SMTP RCT header value) - although
you cannot use the envelope extension, because
of their architecture and how they delivery emails to your actual
mailbox via proxies.
Support for Sieve
Sieve is a language to filter emails based on conditional logic -
basically a bunch of ifs.
In case you have ever used Sieve, you wouldn't want to trade it
with e.g. Gmail's filters.
Migadu hosts a managed sieve endpoint that you can enable access
for on an individual mailbox basis. You may use any sieve client
to connect to it with your mailbox credentials.
I'd recommend
sieve-connect to upload the Sieves scripts.
It's probably worth pointing out that you should test your scripts
in a separate mailbox to not loose any incoming emails by accident.
You can easily upload and activate a sieve script without using the REPL, like this:
sieve-connect -s imap.migadu.com -u timo@furrer.life --localsieve ./main.sieve --upload
sieve-connect -s imap.migadu.com -u timo@furrer.life --localsieve ./main.sieve --activate
As mentioned in
Support for plus addressing above, you can't use the
envelope Sieve extension.
According to the Migadu support that's because dovecot
and postfix are not on the same servers.
I'm not expert enough to actually tell if it wouldn't somehow
be possible to still use or support the envelope
extension, but yeah, it's a bummer.
For example, if envelope would be supported
you could easily refile to a folder like this:
if envelope :detail "to" "test" {
fileinto "test";
}
Instead we have to resort to other headers,
like X-Envelope-To:
if header :contains "X-Envelope-To" "timo+test@furrer.life" {
fileinto "test";
}
Calendars and Contacts
Migadu officially states that they only have very basic CalDav and CardDav support:
We make the basic CalDAV and CarDAV services available, but they are not our focus. We continue developing them but please do not expect we will ever compete with dedicated calendar services.
And after using it for a while I can confirm exactly that. The problem is calendar scheduling, that is, replying to events and receiving replies from attendees on events that I'm organizing. Migadu right now supports neither. They are specifically missing support for iMIP and iTIP. So far, that's been the most limiting factor of the migration. Right now, I'm manually updating attendee replies and sending out replies for my own participation status.
Conclusion
I still have plenty of things to explore and address. Especially the shortcomings in calendar scheduling support. I'm exploring other hosting options for CalDav and CardDav, preferably self-hosted. However, I'm also tempted to implement a little bridging services for iMIP and iTIP.