#PrismBreak – Google Mail ersetzen mit eigenem IMAP – Mailserver

Für das Speichern der eigenen Mails wird ein IMAP-Server genutzt. Ich habe mich für Dovecot entschieden. Für die Installation meldet man sich als root-User auf der PrismBreakBox an, z.B. per SSH. Befindet man sich auf der Maschine, gibt mal folgende Anweisung ein, um Dovecot zu installieren:

apt-get install dovecot-core dovecot-imapd

Die Software wird installiert und eine einfache Konfiguration eingerichtet. Anschliessend öffnet man seinen Browser und öffnet die Webmin Seite unter https://prismbreakbox.local:10000/. Da das Dovecot-Modul noch nicht aktiviert ist, gibt man bei Search entsprechend dovecot ein und bestätigt die Eingabe. Im ersten Eintrag der angezeigten Liste klickt man den Eintrag unter der Spalte Module, Dovecot IMAP/POP3 Server, an. Leider sind die angeboteten Konfigurationsmöglichkeiten nicht für meine Ansprüche ausreichend. Allerdings kann man die Konfigurationsdatei direkt über die Webmin Oberfläche editieren. Hierzu den Punkt ganz rechts, Edit Config Files, auswählen. Es wird nun die Dovecot-Konfigurationsdatei angezeigt. Den Inhalt mit folgenden Zeilen überschreiben:

listen = *
auth_mechanisms = plain login
log_path = /var/log/dovecot.log
mail_location = maildir:~/Maildir
protocols = imap
service imap-login {
  inet_listener imap {
    port = 0
  }
}
ssl = required
ssl_cert = </etc/dovecot/dovecot.pem
ssl_key = </etc/dovecot/private/dovecot.pem
userdb {
  driver = passwd
}
passdb {
  driver = pam
}
protocol imaps {
  imap_idle_notify_interval = 2 mins
  imap_max_line_length = 64 k
 imap_client_workarounds = tb-extra-mailbox-sep
}
mail_max_userip_connections = 20

Die Änderung mit Save bestätigen und auf der folgenden Seite mit Apply Configuration aktivieren.

Mails einsammeln von verschiedenen Accounts

Mit dem iMAP-Server alleine ist es nicht getan. Dort werden die Mail nur aufbewahrt. Aber wie kommen die Mails von den eigenen Mailaccounts dort hin? Eigentlich wollte ich erst Fetchmail benutzen. Da ich aber schon eine fertige Konfiguration von vorherigen #PrismBreak Experimenten hatte, und die Konfiguration mittels Webmin nicht so einfach aussah, habe ich doch wieder getmail genommen.

Die ganzen folgenden Arbeiten werden mit dem eigenen Benutzer durchgeführt.

Zuerst legt man pro Mail-Account, den man Abrufen möchte, eine Konfigurationsdatei für getmail an. Ich habe dazu in meinem home-Verzeichnis ein Unterverzeichnis .getmail angelegt:

cd ~
mkdir .getmail
cd .getmail

Nun legt man sich für einen Mail-Account die Konfigurationsdatei an. Pro Mailaccount, der abgerufen werden soll, wiederholt sich der Vorgang. Ich benutzte wieder joe als Editor.

joe mein@mailaccount.de.getmail

Die Datei wird neu angelegt, die fett hervorgehobenen Einträge passt man an seinen Account an:

[options]
message_log = /home/benutzername/.getmail/log/mein@mailaccount.de.log
verbose = 2

[retriever]
type = SimplePOP3SSLRetriever
server = pop.meinmailhoster.de
port = 995
username = meinBenutzerAccount
password = MeinGeheimesPasswort
use_apop = false
timeout = 180

[destination]
type = Maildir
path = /home/benutzername/Maildir/
user = benutzername
filemode = 0600

Die Datei mit Ctrl+K und anschliessend X speichern. Den Vorgang für jeden Mailaccount wiederholen, für den man die Mails abholen will und in den IMAP-Server einsortiert haben möchte.

Nun muss noch ein Shell-Skript angelegt werden, welches regelmässig durch Cron aufgerufen wird und getmail für jede Konfiguration aufruft.

joe getmail.sh

In die Datei wird folgendes eingetragen. Die fett hervorgehobenen Eintrag sind entsprechend anzupassen:

#! /bin/sh
/usr/bin/getmail -q -d --rcfile /home/benutzername/.getmail/mein@mailaccount.de.getmail --getmaildir /home/benutzername/.getmail

Die Zeile, welche mit /usr/bin/getmail beginnt, ist für jede Konfigurationsdatei in getmail.sh neu anzuhängen, entsprechend angepasst für die zusätzliche Konfigurationsdatei.

Anschliessend das Skript mit folgendem Befehl ausführbar machen:

chmod a-x getmail.sh

Regelmässiges Mailabrufen einrichten

Die Konfiguration zum Abholen und Einsortieren der Mail in den eigenen IMAP-Account wurde oben beschrieben. Nun geht es darum, dass dieser Prozess regelmässig automatisch aufgerufen wird. Hierzu wird Cron genutzt. Dazu ruft mal crontab auf:

crontab -e

Folgender Eintrag ruft alle fünf Minuten das Shell-Skript auf:

*/5 * * * * /home/benutzername/.getmail/getmail.sh &>/dev/null

 

Kommentar verfassen