benno-pop3 ist ein POP3 Konnektor für Benno MailArchiv. Die E-Mails werden aus einem Postfach eines POP3-Servers abgeholt und atomar in das INBOX-Verzeichnis von Benno geschrieben. Das Programm kann wird über das Paket benno-pop3 mittels apt installiert:
apt install benno-pop3
In der Datei /etc/benno-pop3/benno-pop3.conf
werden der Hostname sowie die Zugangsdaten für das Postfach eingetragen.
# # benno-pop3.conf # # user = # pass = # host = localhost # port = 110 | 995 # runuser = benno # numfetch = 200 # inbox = /srv/benno/inbox # # extraheader_name = X-BENNO-GW # extraheader_value = host = pop3.lw-systems.net user = mailimport pass = secret
Danach wird der Cron-Job in der Datei /etc/cron.d/benno-pop3
aktiviert. Hierfür wird das # Zeichen vor der Zeile mit dem Programmaufruf entfernt.
# /etc/cron.d/benno-pop3 # # */15 * * * * benno [ -x /usr/sbin/benno-pop3 ] && /usr/sbin/benno-pop3 -c /etc/benno-pop3/benno-pop3.conf -d -s -S
Aufruf: benno-pop3 [-D] [-c <file>] [-A <mode>] [-u <user>] [-p <pass>] [-i <inbox dir>] [-H <host>] [-n <num>] [-s] [-S] -D print debug messages -c <file> path to config file (format: param = value) -u <user> pop3 username -p <pass> pop3 password -i <dir> Benno inbox (/srv/benno/inbox) -H <host> hostname (localhost) -M <mode> file mode (default 0640) -P <port> port (110) -R <userid> run as <userid> (default benno) -n <num> fetch num mails per run (200) -d delete mails on pop3 server -r <addr> add address as X-REAL-RCPTTO header -s ssl connect to pop3s (default port 995) -S suppress ssl certificate verification -A <mode> AUTH MODE: BEST (default) | PASS | APOP | CRAM-MD5 -X extra header name written to each mail (default: X-BENNO-GW) -x extra header value written to each mail (setting enables) -v verbose
Beim Abruf großer Mailboxen kann das Problem auftreten, daß der Import-Job noch nicht beendet ist, wenn der nächste Durchlauf startet. Je nach Konfiguration des POP3-Servers sind die E-Mails womöglich noch nicht gelöscht, so daß der nächste Durchlauf wieder die komplette Mailbox laden will. Dieses kann dazu führen, daß der POP3-Server überlastet wird.
Aus diesem Grund ist das Programm so gestaltet, daß zu einem Zeitpunkt nur ein Job gleichzeitig laufen kann.
Für den Abruf mehrerer Mailboxen bietet sich ein serieller Abruf an. Hierfür wird ein kleines Script /etc/benno-pop3/fetch-serial
erstellt, das die möglichen Konfigurationen der Reihe nach abarbeitet:
#!/bin/bash # # /etc/benno-pop3/fetch-serial CONFDIR=/etc/benno-pop3/ ENABLED='' for CONFFILE in $(ls -1 ${CONFDIR}/*.conf); do /usr/sbin/benno-pop3 -c "${CONFFILE}" -s -S -d ENABLED=OK done [ ${ENABLED}x = x ] && echo "BENNO POP3 ERROR - No configuration enabled" && exit 1
Mit diesem Script werden alle Konfigurationsdateien mit der Endung .conf aus dem Verzeichnis der Reihe nach aufgerufen.
Anschließend das x-Flag aktivieren:
chmod +x /etc/benno-pop3/fetch-serial
und den Cron-Aufruf anpassen:
*/15 * * * * benno [ -x /etc/benno-pop3/fetch-serial ] && /etc/benno-pop3/fetch-serial