HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Installation/Configuration (http://www.howtoforge.com/forums/forumdisplay.php?f=27)
-   -   Extend require line for dovecot.sieve-files (http://www.howtoforge.com/forums/showthread.php?t=53985)

osterhase 31st August 2011 09:40

Extend require line for dovecot.sieve-files
 
[Moved from here]

Hi there!

Maybe someone can give me a hand here: Due to the fact that the sieverules-plugin of roundcube allows more complex filtering solutions than ISPConfig we found the require-line which is written by ispconfig insufficient:

Code:

require ["fileinto", "regex", "vacation"];
Because some of our users are utilizing the copy-function for instance the require line would read:

Code:

require ["fileinto","regex","vacation","copy"];
As far as I'm concerned the require line is written statically to the dovecot.sieve-file. In which file is this directive defined so we can simply add more sieve-filter-features?

Best regards

till 31st August 2011 10:08

All config file templates are in the directory /usr/local/ispconfig/server/conf/. Store your modified copy of the file in the conf-custom directory, so that it does not get overwritten on updates.

osterhase 31st August 2011 10:12

Thanks for the quick reply and the answer - learned a bit more about ISPConfig today. ;-)

CSsab 31st August 2011 11:20

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 :personal 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.

osterhase 31st August 2011 11:27

So what is actually your problem / question? Sorry if I got lost between the lines...

CSsab 31st August 2011 11:42

I do not have a question or problem other than my local delivery at the moment.
I am thinking that it would be a better idea to manage sieve as a service rather than a protocol. That is all.:)

osterhase 3rd September 2011 09:54

Sorry - but I needed a while to think of that.

You should have no problem with that because isp_sieverules does not care about how managesieve is run. As far as I'm concerned also managesieve (run as a daemon) utilizes *.sieve files (or am I wrong here?).

So all isp_sieverules does is to catch the script BEFORE it is actually written and pass it on to ISPConfig. The via the api-functions it is integrated. So it does not matter if its a daemon or whatever. You should have not problems actually.

CSsab 3rd September 2011 16:33

Quote:

Originally Posted by osterhase (Post 262873)
As far as I'm concerned also managesieve (run as a daemon) utilizes *.sieve files (or am I wrong here?).

No you are right - previously when I tried the managesieve plugin for roundcube I had to install pidgeonhole and it was a headache because my libtool was broken - I gave it up in the end. Like yourself and others here I am really only interested in adding functionality to ISPConfig 3 without having to install everything but the kitchen sink :D

Quote:

So all isp_sieverules does is to catch the script BEFORE it is actually written and pass it on to ISPConfig. The via the api-functions it is integrated. So it does not matter if its a daemon or whatever. You should have not problems actually.
Haven't gotten that far yet - I modified ISPConfig installer slightly to allow me to use Dovecot v2 out of the box (mainly just the SQL file to change the table "disabledeliver" to "disablelda" in dbispconfig and also changed all php references to "disabledeliver" in the installer to read as "disablelda".

Installer runs fine so far but I am still testing.


All times are GMT +2. The time now is 23:52.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.