{{ include "/_common-head.html" }} {{ include "/_backlink.html" }}

Review of my first month at Migadu

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.

E-Mail

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.

From https://www.migadu.com/procon/#basic-calendar

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.

{{ include "/_footer.html" }}