Dies ist eine alte Version des Dokuments!


Dovecot, Nachrichten auf dem Server mit SIEVE filtern

Dovecot-Logo Zur Filtern von E-Mails auf IMAP-Servern wurde die Programmiersprache SIEVE konzipiert - die genaue Spezifikationen erfolgten hierzu im RFC 5228 und vielen Erweiterungen/Ergänzungen in weiteen RFCs. Das Hauptaugenmerk von SIEVE liegt auf Einfachheit, Erweiterbarkeit, sowie auf Unabhängigkeit von der verwendeten Zugriffsart und Architektur wie auch dem verwendeten Betriebssystem. Sieve wurde spezifiziert, um den Usern die Möglichkeit zu beiten, bereits serverseitig auf einfache Art und Weise eigene Regeln zur Filterung von E-Mails zu definieren. Sieve-Scripte werden bereits während der Zustellung der eMail am IMAP-Server ausgeführt.

Weitere Hintergrundinformationen finden man unter anderem in dem Wikipedia-Artikel zu SIEVE.

BILD: Dovecot Pigeonhole Logo
Die Unterstützung und Implementierung von SIEVE erfolgt über das Projekt managesieve von Stefan Bosch. Detaillierte Informationen zum Protokoll Managesieve sowie zum RFC 5228 und den zahlreichen Erweiterungen RFCs findet man auf der Projektseite von Stefan Bosch.

Am Einfachsten bedienen wir uns zur Installation des Paketes dovecot-pigeonhole eines aktuell gepflegten Dovecot-Repositories, wie z.B. dem Repository mailserver.guru. Das dort enthaltene Paket wurde für den aktuellen Dovecot-release 2.2.131) gebaut. Die Intstallation und Integration des Repositories mailserver.guru ist im Kapitel mailserver.guru unter CentOS 6 und CentOS 7 einbinden erklärt.

Die Installation des Paketes geht dank des Repositories mailserver.guru leicht von statten, benötigen wir hierzu lediglich den Befehl yum.

 # yum install dovecot-pigeonhole -y

Was uns das Paket dovecot alles mit ins System bringt, zeigt uns der Befehl rpm mit der Option -qil.

 # rpm -qil dovecot-pigeonhole
Name        : dovecot-pigeonhole
Epoch       : 1
Version     : 2.2.13
Release     : 2.el7.centos
Architecture: x86_64
Install Date: Mon 04 Aug 2014 11:01:38 PM CEST
Group       : System Environment/Daemons
Size        : 1133200
License     : MIT and LGPLv2
Signature   : RSA/SHA1, Fri 01 Aug 2014 08:55:53 PM CEST, Key ID 60ecfb9e8195aea0
Source RPM  : dovecot-2.2.13-2.el7.centos.src.rpm
Build Date  : Fri 01 Aug 2014 08:52:54 PM CEST
Build Host  : vml000200.dmz.nausch.org
Relocations : (not relocatable)
Packager    : Django <django@mailserver.guru>
Vendor      : django
URL         : http://www.dovecot.org/
Summary     : Sieve and managesieve plug-in for dovecot
Description :
This package provides sieve and managesieve plug-in for dovecot LDA.
/etc/dovecot/conf.d/20-managesieve.conf
/etc/dovecot/conf.d/90-sieve-extprograms.conf
/etc/dovecot/conf.d/90-sieve.conf
/usr/bin/sieve-dump
/usr/bin/sieve-filter
/usr/bin/sieve-test
/usr/bin/sievec
/usr/lib64/dovecot/lib90_sieve_plugin.so
/usr/lib64/dovecot/settings/libmanagesieve_login_settings.so
/usr/lib64/dovecot/settings/libmanagesieve_settings.so
/usr/lib64/dovecot/sieve
/usr/lib64/dovecot/sieve/lib90_sieve_extprograms_plugin.so
/usr/libexec/dovecot/managesieve
/usr/libexec/dovecot/managesieve-login
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/AUTHORS
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/COPYING
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/COPYING.LGPL
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/ChangeLog
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/INSTALL
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/NEWS
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/README
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/example-config
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/example-config/conf.d
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/example-config/conf.d/20-managesieve.conf
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/example-config/conf.d/90-sieve-extprograms.conf
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/example-config/conf.d/90-sieve.conf
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/sieve
/usr/share/doc/dovecot-2.2-pigeonhole-0.4.2/sieve/script-location-dict.txt
/usr/share/man/man1/sieve-dump.1.gz
/usr/share/man/man1/sieve-filter.1.gz
/usr/share/man/man1/sieve-test.1.gz
/usr/share/man/man1/sievec.1.gz
/usr/share/man/man1/sieved.1.gz
/usr/share/man/man7/pigeonhole.7.gz

Die Konfiguration vom Managesieve-Plugin dovecot-pigeonhole erfolgt über die drei Konfigurationsdateien 20-managesieve.conf, 90-sieve-extprograms.conf und 90-sieve.conf im Verzeichnis /etc/dovecot/conf.d/

FIXME

Zu guter letzt fügen wir noch das Protokoll oder exakter formuliert die Script-Sprache sieve zu den Protokollen hinzu, die unser Dovecot-Server zur Verfügung stellen soll. Per Default bietet unser Dovecot-Server bisher folgende Protokolle an:

 # doveconf protocols
 protocols = imap pop3 lmtp

Die Erweiterung um sieve erfolgt in der Konfigurationsdatei /etc/dovecot/dovecot.conf.

 # vim /etc/dovecot/dovecot.conf
/etc/dovecot/dovecot.conf
## Dovecot configuration file
 
# If you're in a hurry, see http://wiki2.dovecot.org/QuickConfiguration
 
# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.
 
# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "
 
# Most (but not all) settings can be overridden by different protocols and/or
# source/destination IPs by placing the settings inside sections, for example:
# protocol imap { }, local 127.0.0.1 { }, remote 10.0.0.0/8 { }
 
# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr
# --sysconfdir=/etc --localstatedir=/var
 
# Protocols we want to be serving.
# Django : 2014-08-04
# Erweiterung um die Scriptsprache/Protokoll sieve
# default: #protocols = imap pop3 lmtp
protocols = imap pop3 lmtp sieve
 
# A comma separated list of IPs or hosts where to listen in for connections. 
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
# Django : 2014-08-04
# IPv6-Adressen deaktivieren, Server lauscht nur auf einem Netzwerkinterface
# bzw. einer IPv4-Addresse
# default: #listen = *, ::
# listen = 10.0.0.70
 
# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/
 
# Name of this instance. In multi-instance setup doveadm and other commands
# can use -i <instance_name> to select which instance is used (an alternative
# to -c <config_path>). The instance name is also added to Dovecot processes
# in ps output.
#instance_name = dovecot
 
# Greeting message for clients.
#login_greeting = Dovecot ready.
 
# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =
 
# Space separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets = 
 
# With proxy_maybe=yes if proxy destination matches any of these IPs, don't do
# proxying. This isn't necessary normally, but may be useful if the destination
# IP is e.g. a load balancer's IP.
#auth_proxy_self =
 
# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
# Django : 2014-07-21
# In der Prozessliste bei den POP3/IMAP-Prozessen zusätzlich den Usernamen, 
# die Client-IP-Adresse und den ausgeführten IMAP-Befehl anzeigen. 
# default: #verbose_proctitle = no
verbose_proctitle = yes
 
# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes
 
# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server
 
# Space separated list of environment variables that are preserved on Dovecot
# startup and passed down to all of its child processes. You can also give
# key=value pairs to always set specific settings.
#import_environment = TZ
 
##
## Dictionary server settings
##
 
# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".
 
dict {
  #quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
 
# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
!include conf.d/*.conf
 
# A config file can also tried to be included without giving an error if
# it's not found:
!include_try local.conf

Links


1)
Stand Juli 2014
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • centos/mail_c7/dovecot_3.1407187591.txt.gz
  • Zuletzt geändert: 04.08.2014 21:26.
  • von django