Migrera e-post från Exchange Server

10 Apr 2021

Migrera e-post

Efter att ha börjat se över min privata serverpark så är det en sak som jag känt mig missnöjd med: min e-postserver. Det har med åren blivit allt mer komplicerat att köra egen e-postserver hemma på privat internetlina, även om man har en fast IP-adress, port 25 öppet och en korrekt reverse DNS-pekare mot sin e-postserver. Det är också, minst sagt, inte helt underhållsfritt att köra en Exchange Server – detta är som de flesta vet en smidig och trevlig lösning tills att man stöter på ett problem, exempelvis ett strömavbrott eller när servern ska patchas och det går åt skogen.

Så jag började fundera. Jag satt och jämförde priser på olika lösningar där jag låter ett annat företag hantera allt åt mig och jag tittade högt som lågt, från Exchange Online till Mailbox.org men det hela föll på att det skulle kosta mig 500-600 kronor i månaden, alltså 6000-7000 kronor om året, för att hantera e-post åt mig, mina barn och mina föräldrar. Det blev helt enkelt för dyrt, även om det varit oerhört bekvämt att bara kasta problemet på någon annan.

Således tillbaka till ritbordet. Jag ville ha något enklare än Exchange Server, som bygger på Linux, Postfix och andra programvaror som bygger på öppen programvara, som är duktiga på att skriva i loggfiler (och därmed är enkla att felsöka), som stödjer ActiveSync till enheter som kan använda det och som också erbjuder IMAP, vettig webbaserad e-postfunktion, kalender och kontaktsynkning till alla de plattformar jag använder dagligen (iOS, LinageOS, macOS och Linux). Efter en del rotande och funderande så föll valet på iRedmail som är en gratis paketering med alla dessa funktioner inbyggt från skalet. Den webbaserade kontrollpanelen är inte helt överdrivet imponerande såvida man inte vill betala 499 dollar per år för att få en fullfjädrad dito men gänget bakom iRedmail är ändå pass snälla så de noga dokumenterat hur man kan utföra de allra flesta administrationsgöromål i ett terminalfönster istället. Att de dessutom endast tar betalt via Paypal är, åtminstone i min bok, ett klart misstag.

Hur som haver, efter att jag tittat på olika leverantörer av en virtuell privat server (VPS) föll valet på OVH och en tusenlapp senare hade jag tecknat mig för tolv månaders abonnemang av en VPS med dubbla processorkärnor, fyra gigabyte internminne och 80 gigabyte hårddisk. Fyra gigabyte internminne är det gränsvärde som iRedmail-utvecklarna anger som en lägsta-nivå för en mindre e-postserver vilket jag anser att min är. Skulle det behövas mer är det bara att panga på fyra gigabyte till, men där är vi inte ännu.

iRedmail är därefter installerat, SSL-certifikatet är fixat med Let’s Encrypt (givetvis), domäner och användarkonton inlagda DKIM-nyckeln för respektive domän är genererad och inpetad i Amavisd.conf och DNS-tabellerna för varje domän är uppdaterad. Således är det dags att migrera e-posten från den gamla Exchange-servern till min nya fina server.

Det är, som det brukar heta, nu det “roliga” börjar.

Det är inte roligt

Nej, det är inte roligt att migrera e-post, i synnerhet när det är någon annans e-post man ska migrera. Men det måste göras och har man en gång öppnat dörren för att hantera e-post för kreti och pleti så får man vackert leva med att jobbet måste göras.

Hur som haver, det är egentligen inte så vansinnigt komplicerat, egentligen. Mycket tack vare att du nu får några tips som kommer göra det betydligt enklare för dig.

Först och främst: se till att IMAP-tjänsterna är aktiverade i din Exchange-server. Kolla i services.msc på servern om de är igång, om inte – starta dem.

Se därefter till att användarna har IMAP aktiverat som funktion för sina användarkonton. Har du inte aktivt slagit av detta brukar det vara aktivt som standard men dubbelkolla genom ECP.

Testa sedan att köra telnet till din e-postserver på port 143 eller 993. Om servern säger “hej hopp” och sedan väntar på input är det grönt ljus och du kan gå vidare i processen. Om den däremot “slänger på luren” och inte vill prata med dig alls så ska du läsa vidare i nästa punkt.

Detta är nästa punkt. Logga in via RDP med ett administratorkonto på din Exchange-server och öppna därefter EMC (Exchange Management Shell). Ge därefter kommandot Get-ServerComponentState och kolla noggrant om det finns tjänster som står som Inactive.

Migrera e-post

Ser det ut som bilden ovan, att ImapProxy står som Inactive så betyder det precis vad du tror – den kommer inte prata IMAP med dig. Lyckligtvis är det inte supersvårt att fixa. Ge följande kommando: Set-ServerComponentState -Identity SERVERNAMN -Component IMAPProxy -State Active -Requester HealthAPI

Kör sedan Get-ServerComponentState och se så ImapProxy står som aktiv och försök köra telnet till den igen på port 143 eller 993.

Ser allt bra ut kan du sätta igång att migrera.

Migreringsprocessen

Vi använder oss i denna guide av ett verktyg som heter Imapsync. Den gör precis vad namnet antyder, synkroniserar e-post mellan två olika servrar, eller två olika konton på samma server, via IMAP-protokollet. Det finns tonvis med information om hur man använder Imapsync, man kan köra det på Windows, Unix eller Linux med olika för- och nackdelar. Jag har valt att köra det på Linux därför att.

Installera Imapsync (på Linux och Unix kan du behöva kompilera det – läs på och fixa) och sedan skapar du två filer i den katalog du kör Imapsync från: pass1 och pass2. Varför undrar du? En titt på kommandoraden jag kör visar vad det hela handlar om:

imapsync --host1 server1 --ssl1 --user1 login --passfile1 pass1 --exclude Public Folders --host2 server2 --ssl2 --user2 login --passfile2 pass2

Förklaringsdags:

–host1 är den server du migrerar från.
–host2 är den server du migerar till.
–ssl1 anger att Imapsync ska prata SSL med servern du migrerar från.
–ssl2 anger att Imapsync ska prata SSL med servern du migerar till.
–user1 är inloggningsnamnet på den användare på host1 du ska migrera till användaren på host2.
–user2 är inloggningsnamnet på den användare på host2 du ska migrera från användaren på host1.
–passfile1 är lösenordet för den användare på host1 du ska migrera till användaren på host2.
–passfile2 är lösenordet för den användare på host1 du ska migrera från användaren på host1.
–exclude Public Folders innebär att jag inte vill synkronisera över innehållet i några publika foldrar på Exchange Servern. Det finns inget där på min server men det kan ställa till det i synkroniseringen så mitt råd är att skippa dem.

Anledningen till att man sätter lösenorden i en fil är att de ofta innehåller knepiga tecken och det kan ställa till det i kommandoraden i Linux. Om du kör Imapsync och inte anger några parametrar alls så kommer du se alla parametrar du kan köra. De är många och de flesta behöver du nog inte men det kan vara värt att kolla på.

Om allt fungerar kommer e-posten att synkroniseras över mellan de två servrarna. Beroende på hur snabb internetanslutning du har och hur mycket e-post som ska slangas över så kan det ta några minuter eller så kan det ta… fler minuter. Ett konto jag migrerade med 476 megabyte e-post, drygt 7000 brev, tog drygt 17 minuter att överföra med ett snitt på drygt sex meddelanden i sekunden enligt Imapsync.

Har du fler användare är det bara att repetera processen tills du är klar. Se till att du håller ordning på lösenorden så kommer det fungera finemang.

Lycka till!