Zum Archivieren sehr alter Mails (ich werf ja nix weg…) benutze ich seit heute
docker-mailserver.
Mailserver auf Docker-Basis
Dazu erstelle ich mir zunächst einen Mailserver auf Docker-Basis:
(Anleitung nach dieser Vorlage.)
- Compose anlegen:
vi docker-compose.yml
…- Ich habe dabei noch
SSL_TYPE=self-signed
angegeben, weil ich der Mailserver nur intern benutzen will.
- Ich habe dabei noch
- Config-Dir anlegen:
mkdir config
- User anlegen:
docker run --rm -e MAIL_USER=meinuser@meinesubdomain.steinkopf.net -e MAIL_PASS=xx -ti tvial/docker-mailserver:latest /bin/sh -c 'echo "$MAIL_USER|$(doveadm pw -s SHA512-CRYPT -u $MAIL_USER -p $MAIL_PASS)"' >> config/postfix-accounts.cf
- DKIM keys erzeugen (benutze ich aber nicht, weil nur intern):
docker run --rm -v "$(pwd)/config":/tmp/docker-mailserver -ti tvial/docker-mailserver:latest generate-dkim-config
- Container starten:
docker-compose up -d
Den Mailserver kann ich nun mit meindocker-host:993 ansprechen.
Mails mit imapsync kopieren
Dieses Script benutze ich z.B. um 10 Jahre (10*365 Tage) alte Mails zu kopieren:
options=""
#options="$options --justfolders "
#options="$options --dry "
options="$options --host1 sourcehost --port1 993 --ssl1 "
options="$options --user1 sourceuser --password1 xxx "
options="$options --host2 docker-prod.steinkopf.net --port2 993 -ssl2 "
options="$options --user2 meinuser@meinesubdomain.steinkopf.net --password2 yyy "
options="$options --subfolder2 fromsourcehost "
options="$options --minage 3650 "
options="$options --exclude Deleted.Items|Trash "
options="$options --delete2 --expunge2 "
options="$options --regextrans2 s/INBOX/Eingang/ "
options="$options --syncinternaldates "
options="$options --usecache "
options="$options --useheader Message-Id --skipsize "
options="$options --tmpdir /data/temp/ "
set -e
set -x
imapsync $options
Die Option --automap
klingt erstmal praktisch, habe ich dann aber doch nicht benutzt, weil sie offenbar vor --subfolder2
ausgeführt, was zur Folge hat dass die ensprechend re-automap-ten Folder im globalen Folder landen statt im Unterfolder von fromsourcehost
.
Anhang: docker-compose.yml
version: '2'
services:
mail:
image: tvial/docker-mailserver:latest
# build: .
hostname: meinesubdomain
domainname: steinkopf.net
container_name: mail
ports:
- "10025:25"
- "143:143"
- "587:587"
- "993:993"
environment:
- SSL_TYPE=self-signed
volumes:
- ./mail/var_mail:/var/mail
- ./config/:/tmp/docker-mailserver/