ubuntuusers.de

Dovecot, Sieve und eGroupware

Status: Gelöst | Ubuntu-Version: Server 8.04 (Hardy Heron)
Antworten |

utsch

Avatar von utsch

Anmeldungsdatum:
7. November 2007

Beiträge: 213

Wohnort: Ötisheim

Ich hoffe, dass ich hier mit dem Thema richtig bin. Ich habe auf meinem Server Dovecot als imap-Server laufen. Habe jetzt noch um Sieve erweitert. Da ich eGroupware als Groupwarelösung am laufen habe, wollte ich hier die Filterung mit Sieve nutzen, was allerdings nicht funktioniert. Div. Lösungsvorschläge im Mailadmin auf Cyrus um zustellen funktionierte nicht.

Hat jemand evtl. eine Lösung wie eGw mit Dovecot und Sieve zusammen spielen? Läuft es bei jemanden?

Danke schon mal.

Gruß

Utsch

utsch

(Themenstarter)
Avatar von utsch

Anmeldungsdatum:
7. November 2007

Beiträge: 213

Wohnort: Ötisheim

Habe gerade Antwort von Ralf Becker vom eGroupware-Forum bekommen:

eGroupware läuft nur, in Verbindung mit Sieve, mit Cyrus zusammen. Dovecot wird nicht unterstützt.

Gruß

Utsch

ixsys

Anmeldungsdatum:
4. Januar 2010

Beiträge: 5

hallo utsch,

die info ist falsch; die sieve implementierung von egroupware läuft sehr wohl auch mit dovecot zusammen; ich bin gerade dabei, ein solches setup zu stricken; die dokumentation von egroupware ist leider eine katastrophe weswegen man viele dinge einfach selbst herausfinden muss; solltest du noch interesse haben, sag bescheid;

harald

utsch

(Themenstarter)
Avatar von utsch

Anmeldungsdatum:
7. November 2007

Beiträge: 213

Wohnort: Ötisheim

Hallo ixsys,

danke für Deine Nachricht. Natürlich bin ich weiterhin daran interessiert. Bin leider nur Anwender und muss halt gelegentliche manche Dinge als gegeben hinnehmen 😳

Also, wenn Du irgend wann ein Howto hast nur her damit 😉

Gruße

Utsch

ixsys

Anmeldungsdatum:
4. Januar 2010

Beiträge: 5

ok, ich muss jetzt erstmal wieder selbst herausfinden, wie's geht :O) wenn ich das wieder weiss, helfe ich dir gerne weiter....

lieben gruss

harald

ixsys

Anmeldungsdatum:
4. Januar 2010

Beiträge: 5

hallo utsch,

ich weiss jetzt wieder wie's geht; allerdings hängt das ganze von der verwendeten dovecot version ab, da der taubenschlag seit version 1.2 (endlich) eine eigene sieve implementierung hat (http://wiki.dovecot.org/LDA/Sieve); die egroupware sollte auch recht aktuell sein; ich kann mich dunkel erinnern, dass die 1.4er version diverse probleme mit sieve hatte, deswegen 1.6 verwenden!

ich kann dir hier jetzt kein komplettes howto liefern, da ich das ganze nicht auf einem ubuntu aufgesetzt habe, sondern debian 5.0 (lenny) verwende; das ist zwar technisch sehr ähnlich aber die paketversionen können doch unterschiede aufweisen und ich weiss auch nicht, welche ubuntu ausgabe du verwendest; deswegen skizziere ich an dieser stelle einfach mal grob die vorgehensweise; wenn du fragen hast → einfach fragen :O) (ich mache das in englisch, damit das ganze für eine möglichst grosse community verständlich ist...)

Micro Howto: Using egroupware felamimail sieve interface (rules, vacation) with dovecot 1.2

OS: debian 5.0 (lenny)

used software: dovecot 1.2 (backport), egroupware 1.6 (backport)

(Note: people migrating from former dovecot versions < 1.2 should read this: wiki.dovecot.org/Upgrading/1.2)

1) configure dovecot sieve in /etc/dovecot/dovecot.conf:

protocols = imap imaps pop3 pop3s managesieve   # <-- go sure to add "managesieve" to active protocols

protocol managesieve {    # <-- i didn't have to touch this section!
  login_executable = /usr/lib/dovecot/managesieve-login

  mail_executable = /usr/lib/dovecot/managesieve

  #managesieve_max_line_length = 65536
  
  managesieve_implementation_string = Cyrus timsieved v2.2.13
}

protocol lda {
  # Enabling Sieve plugin for server-side mail filtering
  mail_plugins = sieve    # <-- this has to be enabled
}

plugin {
  sieve=/path/to/your/maildirs/%u/.dovecot.sieve   # <-- adjust path to your setup
  sieve_dir=/path/to/your/maildirs/%u/.sieve  # <-- adjust path to your setup
}

2) Restart dovecot and check

/etc/init.d/dovecot restart

Now there should be a service listening on port 2000 TCP:

postmaster:~/bin# netstat -alptn | grep 2000
tcp        0      0 0.0.0.0:2000            0.0.0.0:*               LISTEN      32183/dovecot

You may try to talk to the sieve service:

postmaster:~/bin# netcat 127.0.0.1 2000
"IMPLEMENTATION" "Cyrus timsieved v2.2.13"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include body variables enotify environment mailbox date"
"SASL" "PLAIN LOGIN"
"STARTTLS"
"NOTIFY" "mailto"
"VERSION" "1.0"
OK "Dovecot ready."
^C

3) Configure egroupware

  • Login as an user with admin privileges

  • Click Admin –> emailadmin –> site configuration

  • Click default profile (created by setup) (or the description you have entered instead of the default)

  • Within the popup window choose IMAP and set:

    • Type of IMAP server: Cyrus IMAP Server

    • Enable Sieve: activate the checkbox

    • Sieve server port: 2000

  • Save these settings

  • Click eMail –> Preferences –> Forced Preferences

  • Enter some name at sieve script name and save it

Caveat! You have to logout and login again to see the new settings working... caching is your enemy at this place :O)

4) Now you should be able to see some more settings within the egroupware eMail application:

  • filter rules

  • vacation notice

  • email notification

Play with this stuff....

You should see some sieve related things inside your logs (/var/log/mail.log):

 Jan  4 19:22:25 postmaster dovecot: managesieve-login: Login: user=<ixsys>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, secured
Jan  4 19:22:25 postmaster dovecot: MANAGESIEVE(ixsys):1001:/cluster/vmail/ixsys Effective uid=1001, gid=1002, home=/cluster/vmail/ixsys
Jan  4 19:22:25 postmaster dovecot: MANAGESIEVE(ixsys):1001:/cluster/vmail/ixsys sieve-storage: using active sieve script path: /cluster/vmail/ixsys/.dovecot.sieve
Jan  4 19:22:25 postmaster dovecot: MANAGESIEVE(ixsys):1001:/cluster/vmail/ixsys sieve-storage: using sieve script storage directory: /cluster/vmail/ixsys/.sieve
Jan  4 19:22:25 postmaster dovecot: MANAGESIEVE(ixsys):1001:/cluster/vmail/ixsys sieve-storage: relative path to sieve storage in active link: .sieve/

Sieve in action while receiving mail should look like this:

Jan  4 17:58:28 postmaster dovecot: deliver(ixsys@xxxxxx.de): Loading modules from directory: /usr/lib/dovecot/modules/lda
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys@xxxxxx.de): Module loaded: /usr/lib/dovecot/modules/lda/lib90_sieve_plugin.so
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys@xxxxxx.de): auth input: home=/cluster/vmail/ixsys
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys@xxxxxx.de): userdb changed username to ixsys
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys): maildir: data=/cluster/vmail/ixsys/
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys): maildir++: root=/cluster/vmail/ixsys, index=, control=, inbox=/cluster/vmail/ixsys
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys): sieve: using sieve path for user's script: /cluster/vmail/ixsys/.dovecot.sieve
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys): sieve: opening script /cluster/vmail/ixsys/.dovecot.sieve
Jan  4 17:58:28 postmaster dovecot: deliver(ixsys): sieve: executing compiled script /cluster/vmail/ixsys/.dovecot.sieve

That's it, hope it works for you too!

Bests

Harald

utsch

(Themenstarter)
Avatar von utsch

Anmeldungsdatum:
7. November 2007

Beiträge: 213

Wohnort: Ötisheim

Hallo ixsys,

erst mal herzlichen Dank für die tolle Anleitung. Doch leider musste ich feststellen, dass ich noch Version 1.1 habe. Da der Server mit Hardy aufgebaut ist (LTS-Version) möchte ich nicht dazwischen fummeln. Habe mir aber die Anleitung auf die Seit gelegt. Könntest Du die Anleitung evtl. auch hier im Wiki hinterlegen? Dann hätten andere Nutzer auch was davon.

Gruß

Utsch

ixsys

Anmeldungsdatum:
4. Januar 2010

Beiträge: 5

hi utsch,

das ganze geht auch mit dovecot 1.1; dann ist die sieve implementierung allerdings etwas anders; man braucht dann ein python teilchen (ich glaube pysieved), also ein bisschen aufwändiger aber möglich; ich habe so ein setup noch auf einem server rumliegen; ich schreibe dir nächste woche auf, wie's geht, falls du noch interesse hast;

lg

harald

utsch

(Themenstarter)
Avatar von utsch

Anmeldungsdatum:
7. November 2007

Beiträge: 213

Wohnort: Ötisheim

Hi,

das wäre super, wenn das gehen würde 👍 Hab auf jeden Fall noch interesse.

Gruß

Utsch

brandonthomas

Anmeldungsdatum:
3. Februar 2010

Beiträge: 2

Super Anleitung! genau das richtige für mich-

habe nur zwei Anmerkungen:

1. das Dovecot Backport hatte ich schnell übersehen- es ist aber hier: http://wiki.dovecot.org/PrebuiltBinaries#Ubuntu –> "For the latest Dovecot for latest Ubuntu LTS see Xiaoka APT Repository" –> http://codex.xiaoka.com/apt/ –> http://codex.xiaoka.com/apt/README –> hier findet man die notwendige Infos... nämlich:

Put the following lines in /etc/apt/sources.list :
deb     http://codex.xiaoka.com/apt  hardy  main restricted
deb-src http://codex.xiaoka.com/apt  hardy  main restricted

2. Dovecot Sieve setzt den eigenen LDA voraus –> einfach wie hier beschrieben konfigurieren (Deine Anpassungen nicht vergessen!): http://wiki.dovecot.org/LDA/Postfix

So, Vielen Herzlichen Dank an IXSYS- bei mir geht es jetzt endlich wie gewünscht ☺

WD

Anmeldungsdatum:
7. Januar 2008

Beiträge: 114

Hallo,
habe einen emailserver mit Getmail, Dovecot(Version 1.1.11) und Postfix aufgesetzt. Sieve läuft auch, nun würde ich gerne pysieved nutzen.
Daher wäre ich auch brennend an der Anleitung für pysieved unter Dovecot 1.1 interressiert!

Gruß

ixsys

Anmeldungsdatum:
4. Januar 2010

Beiträge: 5

hallo wd,

mal in aller kürze ein paar sinnvolle links für dich:

ich habe jetzt mal in den konfigurationsdateien auf besagtem server gestöbert und poste das hier mal; leider zeigt die original url des pysieved mittlerweile ins leere (http://woozle.org/~neale/repos/?p=pysieved;a=snapshot;h=HEAD) aber der dritte der obigen links verweist auf ein entsprechendes ubuntu package, ansonsten findet man sicher noch eine version im internet;

ich kann gerade nicht auf die egroupware auf der maschine zugreifen, aber ich weiss, dass die sieve geschichte zuletzt ging; don't blame me if not; you've been warned!

/etc/dovecot/dovecot.conf

...

protocol lda {
  # Address to use when sending rejection mails.
  postmaster_address = postmaster@mydomain.local

  # Hostname to use in various parts of sent mails, eg. in Message-Id.
  # Default is the system's real hostname.
  #hostname = 

  # Support for dynamically loadable plugins. mail_plugins is a space separated
  # list of plugins to load.
  #mail_plugins = 
  #mail_plugin_dir = /usr/lib/dovecot/modules/lda

  # Binary to use for sending mails.
  #sendmail_path = /usr/lib/sendmail

  # UNIX socket path to master authentication server to find users.
  auth_socket_path = /var/run/dovecot/auth-master

  # Enabling Sieve plugin for server-side mail filtering
  mail_plugins = cmusieve
}

...

auth default {

   socket listen {
    master {
      # Master socket is typically used to give Dovecot's local delivery
      # agent access to userdb so it can find mailbox locations. It can
      # however also be used to disturb regular user authentications.
      # WARNING: Giving untrusted users access to master socket may be a 
      # security risk, don't give too wide permissions to it!
      path = /var/run/dovecot/auth-master
      mode = 0600
      # Default user/group is the one who started dovecot-auth (root)
      user = vmail
      group = vmail
    }
}

pysieved.ini

[main]
# Authentication back-end to use
auth    = Dovecot

# User DB back-end to use
userdb  = Dovecot

# Storage back-end to use
storage = Dovecot

# Bind to what address?  (Ignored with --stdin)
bindaddr = 127.0.0.1

# Listen on what port?  (Ignored with --stdin)
port    = 2000

# Write a pidfile here
pidfile = /var/run/pysieved.pid

# Prepend this path to result of userdb lookup if not absolute
base = /var/spool/mail

[Virtual]
# Path to storage.  %u = user, %d = domain
path = /usr/local/virtual/%d/%u

# What domain to use if no domain name is specified by the user
defaultdomain = none

# What UID and GID should own all files?  -1 to not bother
uid = 1001
gid = 1001

# Switch user@host.name to host.name/user?
hostdirs = False

# Template to build path to home directories (overrides hostdirs).
# Available substitutions :
# %l : login (as used for authentication)
# %u : username part of login
# %d : domain part of login (defaultdomain if none)
# %m : email address (as derived from %u@%d)
homeformat = %d/%m/pysieved

[Dovecot]
# Path to Dovecot's auth socket (do not set unless you're using Dovecot auth)
mux = /var/spool/postfix/private/auth

# Path to Dovecot's master socket (if using Dovecot userdb lookup)
master = /var/run/dovecot/auth-master

# Path to sievec
sievec = /usr/lib/dovecot/sievec

# Where in user directory to store scripts
scripts = .pysieved

# Filename used for the active SIEVE filter (see README.Dovecot)
active = usersieve

# What user/group owns the mail storage (-1 to never setuid/setgid)
uid = -1
gid = -1

an die einstellungen in der egroupware komme ich gerade nicht heran, aber der erste der obigen links zeigt auf einen thread, der genau das bespricht;

lass mich wissen, ob dir das geholfen hat;

viel spass + glück

harald

WD

Anmeldungsdatum:
7. Januar 2008

Beiträge: 114

Hi ixsys,
ich schau mal wie weit ich damit komme.
Vielen Dank für Deine Mühe!

Gruß

brandonthomas

Anmeldungsdatum:
3. Februar 2010

Beiträge: 2

Für den eigenen Referenz dazu:

/etc/apt/sources.list braucht auch noch diese zwei Sources freigeschaltet (sind ja eingetragen aber auskommentiert) weil libpq5 veraltet ist:

deb http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse deb-src http://de.archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse

dann:

apt-get install dovecot-common dovecot-imapd dovecot-pop3d

Antworten |