# Postfix + Dovecot + Maildrop



## GM_Alex (8. Sep. 2010)

Hallo,

ich habe folgendes Problem. Ich wollte die Mailfilter Funktion von ISPConfig verwenden und habe jetzt erst festgestellt das ich dazu maildrop verwenden muss. Deshalb habe ich versucht den lda von dovecot gegen maildrop zu tauschen und in der main.cf von Postfix Maildrop unter virtual_transport eingetragen. Jedoch erhalte ich jetzt folgenden fehler in den Logs:



> Command output: ERR: authdaemon: s_connect() failed: No such file or directory /usr/bin/maildrop: Unable to open mailbox.


Hat jemand eine Idee woran das liegen kann?

Grüße,
Alex


----------



## Till (8. Sep. 2010)

> Ich wollte die Mailfilter Funktion von ISPConfig verwenden und habe  jetzt erst festgestellt das ich dazu maildrop verwenden muss.


Das ist falsch. Bei Verwendung von Dovecot wird kein maildrop verwendet sondern Dovecot-Deliver und die Filter werden in Sieve statt maildrop Syntax erzeugt.

Du musst also alle Deine Änderungen bzgl. Maildrop rückgängig machen.


----------



## GM_Alex (8. Sep. 2010)

Hi Till, danke für deine Antwort. Die Filterregeln die ich in ISPConfig erstelle funktionieren also auch mit Sieve? Ich dachte das geht bei ISPConfig nur mit maildrop, denn leider greifen die Filter nicht. Hast du noch einen Tipp für mich woran das liegen könnte, das die Filter nicht funktionieren?


----------



## Till (8. Sep. 2010)

Schau mal in ispconfig in den Server settings nach, dass dort auch wirklich bei Mailfilter Syntax "Sieve" ausgewählt ist.


----------



## GM_Alex (8. Sep. 2010)

Ja ist drin aber zeigt leider keinerlei Wirkung.


----------



## Till (9. Sep. 2010)

Dann schau mal ins Verzeichnis oberhalb des Maildir, dort muss eine .sieve Datei liegen und wenn Sieve Deinen Filter nicht lesen konnte dann liegt dort auch eine Datei mit der Fehlermeldung.


----------



## GM_Alex (9. Sep. 2010)

Also das .sieve File existiert und ein Error-File ist nicht vorhanden. Mittlerweile denke ich es liegt an der Konfiguration. Hier mal mein dovecot.conf:


```
## Dovecot configuration file
protocols = imap imaps pop3 pop3s
disable_plaintext_auth = no
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_privileged_group = mail


##
## IMAP specific settings
##

protocol imap {
  mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap
  mail_plugins = quota imap_quota 
}


##
## POP3 specific settings
##

protocol pop3 {
  mail_executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/pop3
  pop3_uidl_format = %08Xu%08Xv
}


##
## MANAGESIEVE specific settings
##

protocol managesieve {
  sieve=~/.dovecot.sieve
  sieve_storage=~/sieve
}


##
## LDA specific settings
##

protocol lda {
  postmaster_address = postmaster@example.com
  mail_plugin_dir = /usr/lib/dovecot/modules/lda
  auth_socket_path = /var/run/dovecot/auth-master
  mail_plugins = cmusieve quota
}


##
## Authentication processes
##

auth default {
  mechanisms = plain login

  passdb pam {
  }

  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  userdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }

  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = vmail # User running Dovecot LDA
      #group = vmail # Or alternatively mode 0660 + LDA user in this group
    }

    client {
          path = /var/spool/postfix/private/auth
          mode = 0660
          user = postfix
          group = postfix
    }
  }
}

dict {
}


##
## Plugin settings
##

plugin {
  quota = maildir
}
```
Ich wäre für jeden Tipp dankbar.


----------



## Till (9. Sep. 2010)

Welche Linux Distribution? Hast Du irgend was an der Dovecot Datei manuell geändert?


----------



## GM_Alex (9. Sep. 2010)

Debain Lenny. Ich hatte nichts geändert, außer jetzt gestern um eben maildrop bzw. sieve zum laufen zu bekommen, aber ich habe alle Änderungen rückgängig gemacht. Bei der Installation bin ich nach folgendem HowTo vorgegangen: http://www.howtoforge.de/howto/der-perfekte-server-debian-lenny-debian-50-ispconfig-3/


----------



## Till (9. Sep. 2010)

Wenn Du nach dem Tutorial vorgegangen bist, dann hast Du aber courier pop3/ imap und und maildrop installiert und eben nicht dovecot.


----------



## GM_Alex (9. Sep. 2010)

Sorry war das Falsche. Ich habe dieses hier verwendet: http://www.howtoforge.de/blogroll/p...-debian-5-0-ispconfig-3-mit-dovecot-und-bind/


----------



## GM_Alex (10. Sep. 2010)

Hat keiner mehr eine Idee bzw. ein ähnliches Problem gehabt?


----------



## Till (10. Sep. 2010)

Poste mal Deine dovecot-sql.conf datei (passwort vorher  maskieren).


----------



## GM_Alex (10. Sep. 2010)

HIer der Inhalt der dovecot-sql.conf ohne Comments:

```
driver = mysql
connect = host=localhost dbname=dbispconfig user=ispconfig password=XXX
default_pass_scheme = CRYPT

password_query = SELECT password FROM mail_user WHERE email = '%u' AND disable%Ls = 'n'
user_query = SELECT email as user, maildir as home, CONCAT(maildir, '/Maildir') as mail, uid, gid, CONCAT('maildir:storage=', floor(quota/1024)) AS quota, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n'
```


----------



## Till (10. Sep. 2010)

Das sieht auch soweit ok aus. Der Pfad zur sieve Datei wird dort auch korrekt gesetzt "CONCAT(maildir, '/.sieve') as sieve". Komisch dass es bei Dir nicht geht.

Und Du bist sicher dass dort nicht eine .sieve.err Datei liegt?


----------



## GM_Alex (10. Sep. 2010)

Der Pfad ist ja /var/vmail/MYDOMAIN.DE/ADDRESS und dort liegt bei mir eine .sieve und eine .sievec Datei, mehr leider nicht.


----------



## Till (10. Sep. 2010)

Zitat von GM_Alex:


> Der Pfad ist ja /var/vmail/MYDOMAIN.DE/ADDRESS und dort liegt bei mir eine .sieve und eine .sievec Datei, mehr leider nicht.


Das ist doch gut. Wenn dort mehr liegen würde, dann wäre die sieve Filter Konfiguration fehlerhaft.


----------



## Till (10. Sep. 2010)

Woran siehst Du denn überhaupt, dass die Filter nicht ausgeführt werden. Möglicherweise hast Du einfach nur einen Filter erstellt, der garnicht auf die Emails zutrifft die Du filtern willst. Poste doch mal den Inhalt der .sieve Datei.


----------



## GM_Alex (10. Sep. 2010)

Das ist der Inhalt meines .sieve Files. Und den Filter bei dem ich meine private Mailadresse filtere sollte ja auf jeden Fall greifen.


```
require ["fileinto", "regex", "vacation"];

# Move spam to spam folder
if header :contains "X-Spam-Flag" "YES" {
  fileinto "Junk";
  # Stop here so that we do not reply on spams
  stop;
}

### BEGIN FILTER_ID:4
if header :regex    ["from"] ["meinprivatemailadress@googlemail\.com$"] {
    fileinto "ServerStatus";
    stop;
}
### END FILTER_ID:4
### BEGIN FILTER_ID:2
if header :regex    ["subject"] [" CRON-APT"] {
    fileinto "ServerStatus";
    stop;
}
### END FILTER_ID:2
```


----------



## GM_Alex (10. Sep. 2010)

Kann es sein das etwas in der Art alla:


```
plugin {
    sieve = /var/vmail/%d/%u/.sieve
}
```
in der dovecot.conf fehlt? Das hatte ich jedoch auch schon versucht und es geht leider nicht, vielleicht liegt es auch am Syntax. Wo bekommt denn Dovecot bzw. Sieve gesagt wo er die Filterregel findet?


----------



## GM_Alex (10. Sep. 2010)

Ah ok er holt sich den Pfad aus der Datenbank. Das ist alles sehr sehr komisch.

@Till: Hast du noch eine andere Idee? Kann ich vielleicht irgendwo mit loggen was er genau macht?


----------



## Till (10. Sep. 2010)

Ich denke nicht das es ein Fehler im setup ist, denn Deine Filterregeln können so nicht funktionieren. Z.B. die Regel für meinprivatemailadress@googlemail wird so nie matchen, da die Adresse neimals auf die Domain enden wird sondern immer auf ">", denn Emailadressen sind heutzutage so formatiert "Dein Name <du@deinedomain.de>". Also wähle lieber aml für alle Adressen aus dass der Begriff "enthalten" ist.


----------



## GM_Alex (10. Sep. 2010)

Und natürlich hast du vollkommen Recht. Ich danke dir vielmals für deine Hilfe. Wenigstens habe ich jetzt etwas mehr über Dovecot und Sieve gelernt.


----------

