View Single Post
  #4  
Old 31st August 2011, 11:20
CSsab CSsab is offline
Senior Member
 
Join Date: Apr 2010
Posts: 174
Thanks: 19
Thanked 32 Times in 27 Posts
Default Dovecot v.2 working.

Hi,

My reason for posting this here is because the next thing I intend to try out is the work you have been doing on roundcube sieve.

I am trying out Dovecot v.2 with a managesieve daemon at the moment. In the testing distribution the managesieve protocol has been changed to a service.


Many BIG thanks to xabbu:
http://www.howtoforge.com/forums/showthread.php?t=53656

This is my dovecot.conf currently:

##
## SSL settings
##

ssl = yes
ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem

auth_mechanisms = plain login
disable_plaintext_auth = no
first_valid_gid = 5000
first_valid_uid = 5000
last_valid_gid = 5000
last_valid_uid = 5000
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/var/vmail/%d/%n/Maildir
passdb {
driver = pam
}
passdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
plugin {
quota = maildir
sieve = ~/.dovecot.sieve
sieve_dir = ~/sieve
}
protocols = imap pop3
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
unix_listener auth-master {
mode = 0600
user = vmail
}
user = root
}
service imap {
executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/imap
}
service pop3 {
executable = /usr/lib/dovecot/rawlog /usr/lib/dovecot/pop3
}
userdb {
driver = passwd
}
userdb {
args = /etc/dovecot/dovecot-sql.conf
driver = sql
}
protocol imap {
# mail_plugin_dir = /usr/lib64/dovecot/modules/lib11_imap_quota_plugin.so
mail_plugin_dir = /usr/lib64/dovecot/modules
mail_plugins = quota imap_quota
}
protocol pop3 {
# mail_plugin_dir = /usr/lib64/dovecot/modules/pop3
mail_plugin_dir = /usr/lib64/dovecot/modules
mail_plugins = quota
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
mail_plugin_dir = /usr/lib64/dovecot/modules
mail_plugins = sieve quota
postmaster_address = postmaster@example.com
}


You will note that I am using SSL but it's fine to use
ssl = no instead.

This is the SQL file from dovecot-sql.conf (uncommented):

driver = mysql
connect = host=localhost dbname=xxxxxx user=ispconfig password=xxxxxxxxxxxxxxxx
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('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE email = '%u' AND disable%Ls = 'n'

MTA is up and running and ISPConfig is not reporting any problems except with local delivery which I am working on now.
I edited /usr/local/ispconfig/interface/web/mail/mail_user_edit.php and replaced all references to disabledeliver with disablelda and changed the table in the mysql database like xabbu said but I am not sure if I translated from German correctly!


These are the sieve specific settings in Dovecot v.2

##
## Settings for the Sieve interpreter
##

# Do not forget to enable the Sieve plugin in 15-lda.conf and 20-lmtp.conf
# by adding it to the respective mail_plugins= settings.

plugin {
# The path to the user's main active script.
sieve = ~/.dovecot.sieve

# A path to a global sieve script file, which gets executed ONLY
# if user's private Sieve script doesn't exist. Be sure to
# pre-compile this script manually using the sievec command line
# tool.
#sieve_global_path = /var/lib/dovecot/sieve/default.sieve

# Directory for ersonal include scripts for the include extension.
sieve_dir = ~/sieve

# Directory for :global include scripts for the include extension.
#sieve_global_dir =

# Which Sieve language extensions are available to users. By default,
# all supported extensions are available, except for deprecated
# extensions or those that are still under development. Some system
# administrators may want to disable certain Sieve extensions or
# enable those that are not available by default. This setting can
# use '+' and '-' to specify differences relative to the default.
# For example `sieve_extensions = +imapflags' will enable the
# deprecated imapflags extension in addition to all extensions
# enabled by default.
#sieve_extensions = +notify +imapflags

# The separator that is expected between the :user and :detail
# address parts introduced by the subaddress extension. This may
# also be a sequence of characters (e.g. '--'). The current
# implementation looks for the separator from the left of the
# localpart and uses the first one encountered. The :user part is
# left of the separator and the :detail part is right. This setting
# is also used by Dovecot's LMTP service.
#recipient_delimiter = +

# The maximum size of a Sieve script. The compiler will refuse to
# compile any script larger than this limit.
#sieve_max_script_size = 1M

# The maximum number of actions that can be performed during a single
# script execution.
#sieve_max_actions = 32

# The maximum number of redirect actions that can be performed during
# a single script execution.
#sieve_max_redirects = 4

# The maximum number of personal Sieve scripts a single user can have.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_scripts = 0

# The maximum amount of disk storage a single user's scripts may occupy.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_storage = 0
}


These are the managesieve specific settings in Dovecot v.2

##
## ManageSieve specific settings
##

# Service definitions

service managesieve-login {
#inet_listener sieve {
# port = 4190
#}

#inet_listener sieve_deprecated {
# port = 2000
#}

# Number of connections to handle before starting a new process. Typically
# the only useful values are 0 (unlimited) or 1. 1 is more secure, but 0
# is faster. <doc/wiki/LoginProcess.txt>
#service_count = 1

# Number of processes to always keep waiting for more connections.
#process_min_avail = 0

# If you set service_count=0, you probably need to grow this.
#vsz_limit = 64M
}

service managesieve {
# Max. number of ManageSieve processes (connections)
#process_count = 1024
}

# Service configuration

protocol sieve {
# Maximum ManageSieve command line length in bytes. ManageSieve usually does
# not involve overly long command lines, so this setting will not normally need
# adjustment
#managesieve_max_line_length = 65536

# Maximum number of ManageSieve connections allowed for a user from each IP address.
# NOTE: The username is compared case-sensitively.
#mail_max_userip_connections = 10

# Space separated list of plugins to load (none known to be useful so far). Do NOT
# try to load IMAP plugins here.
#mail_plugins =

# MANAGESIEVE logout format string:
# %i - total number of bytes read from client
# %o - total number of bytes sent to client
#managesieve_logout_format = bytes=%i/%o

# To fool ManageSieve clients that are focused on CMU's timesieved you can specify
# the IMPLEMENTATION capability that the dovecot reports to clients.
# For example: 'Cyrus timsieved v2.2.13'
#managesieve_implementation_string = Dovecot Pigeonhole

# Explicitly specify the SIEVE and NOTIFY capability reported by the server before
# login. If left unassigned these will be reported dynamically according to what
# the Sieve interpreter supports by default (after login this may differ depending
# on the user).
#managesieve_sieve_capability =
#managesieve_notify_capability =

# The maximum number of compile errors that are returned to the client upon script
# upload or script verification.
#managesieve_max_compile_errors = 5

# Refer to 90-sieve.conf for script quota configuration and configuration of
# Sieve execution limits.
}


Ultimately I would like the sieve scripts of each client to be stored in their own folder with a quota limit and be able to manage their own webmail client folders and themes manageable entirely from the ISPConfig interface but I am still learning about the sieve protocol so it will take me a while.
Reply With Quote