Postfix + Dovecot + Maildrop

#1
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
 
#3
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

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

Till

Administrator
#6
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.
 
#7
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:

Code:
## 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

Administrator
#10
Wenn Du nach dem Tutorial vorgegangen bist, dann hast Du aber courier pop3/ imap und und maildrop installiert und eben nicht dovecot.
 
#14
HIer der Inhalt der dovecot-sql.conf ohne Comments:
Code:
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

Administrator
#15
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?
 

Till

Administrator
#18
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.
 
#19
Das ist der Inhalt meines .sieve Files. Und den Filter bei dem ich meine private Mailadresse filtere sollte ja auf jeden Fall greifen.

Code:
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
 
#20
Kann es sein das etwas in der Art alla:

Code:
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?
 

Werbung