Fetchmail // Centos 7

m00nraker-gmx m00nraker at gmx.net
Mi Jun 10 21:21:00 CEST 2015


Hallo Rüdiger.

Ich habe das mal einfach so in einem Texteditor runtergeschrieben und hoffe, dass kein 
Fehler drin ist:

getmail als systemd-service unter CentOS 7 und Kolab 3.4

getmail project-home/documentation:
http://pyropus.ca/software/getmail/

Warum getmail und nicht fetchmail?
Siehe FAQ:
http://pyropus.ca/software/getmail/faq.html#faq-about
Abschnitt "Why did you write getmail? Why not just use fetchmail?"

Ziel:
Externe Mailpostfächer bei diversen Providern (Unitymedia, GMX, Google, Web.de) sollen 
via. imap-idle per getmail abgerufen werden und die Mails einem Postfach eines Kolab-
Users zugeführt werden.


1)
getmail ist ein Python-Skript und sollte nicht mit root-Rechten laufen, sondern mit User-
Rechten. Dazu legt man folgende user:group an: 
getmail:getmail

2)
Der neu erstellte User sollte über ein Home-Verz. verfügen, also z.B. /home/getmail. 
Dann bitte ein neues Unterverz. für die Mail-Konten und die Logs erzeugen:
z.B. "mkdir /home/getmail/.getmail"

3)
Exemplarisch verwende ich die Mailadr. "test at gmx.de" für ein ext. Postfach, dass ich mit 
getmail abrufen möchte. Der Kolab-User heisst in diesem Beispiel "kolab-
user at kolab.domain". Dazu lege ich folgende Datei an:

/home/getmail/.getmail/rc-test at gmx.de

Diese Datei hat folgenden Inhalt:

# getmail-rc für test at gmx.de

[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmx.de
username = ***
password = ***
mailboxes = ALL

[destination]
type = MDA_external
path = /usr/sbin/sendmail
arguments = ('-f', 'test at gmx.de', '-oi', 'kolab-user at kolab.domain')

[options]
verbose = 0
message_log = /home/getmail/.getmail/log/test at gmx.de.log
message_log_verbose = true
read_all = true
delete = true
delivered_to = false
received = false

################

Diese Datei muss auf den jeweiligen Provider und auf die gewünschten Einstellungen 
angepasst werden. Siehe dazu die getmail-Doku. Für die Weiterleitung an Kolab/Postfix 
verwende ich sendmail. Siehe "man sendmail" für Parameter-Erklärung. Sobald der 
getmail-retriever eine neue Mail bekommt, wird diese per sendmail Kommando an den 
lokalen Postfix weitergeleitet und in das Postfach des gewünschten Kolab-User (hier: 
kolab-user at kolab.domain) einsortiert. Weiterhin wird in dieser Datei der Name der Log-
Datei festgelegt. Die Logs packe ich in das home des getmail-users, also in 
/home/getmail/.getmail/log

4)
In 3) wurde für ein ext. Postfach, also für eine Mail-Adr. eine Config-Datei für getmail 
angelegt. Nun könnte getmail auf Shell-Ebene manuel mit dieser Datei als Parameter 
aufgerufen werden und so ein Abholvorgang manuel gestartet werden. Periodisch kann 
das natürlich auch via. cron-Job gemacht werden. Ich habe mich aber für eine Lösung via. 
Imap-Idle entschieden, die als systemd-service implementiert ist, d.h. getmail wird auch 
nach einem System-Neustart automatisch erneut gestartet und falls die imap-idle 
Verbindung abreisst, startet systemd den Vorgang automatisch neu. Das ist sehr 
komfortabel.
-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.kolab.org/pipermail/users-de/attachments/20150610/40aa5560/attachment-0001.html>


Mehr Informationen über die Mailingliste users-de