Przeglądaj źródła

Added sieve plugin for Dovecot and script to send spam to Junk folder

merge-requests/1/merge
Christoph Haas 10 lat temu
rodzic
commit
75c4a1ead4
5 zmienionych plików z 127 dodań i 0 usunięć
  1. +5
    -0
      roles/ispmail-dovecot/files/10-mail.conf
  2. +106
    -0
      roles/ispmail-dovecot/files/90-sieve.conf
  3. +6
    -0
      roles/ispmail-dovecot/files/spam-to-folder.sieve
  4. +2
    -0
      roles/ispmail-dovecot/handlers/main.yml
  5. +8
    -0
      roles/ispmail-dovecot/tasks/main.yml

+ 5
- 0
roles/ispmail-dovecot/files/10-mail.conf Wyświetl plik

@@ -77,6 +77,11 @@ namespace inbox {
# Namespace handles its own subscriptions. If set to "no", the parent
# namespace handles them (empty prefix should always have this as "yes")
#subscriptions = yes

mailbox INBOX.Junk {
auto = subscribe # autocreate and autosubscribe the Sent mailbox
special_use = \Junk
}
}

# Example shared namespace configuration


+ 106
- 0
roles/ispmail-dovecot/files/90-sieve.conf Wyświetl plik

@@ -0,0 +1,106 @@
##
## 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. If ManageSieve is used, this the
# location of the symbolic link controlled by ManageSieve.
sieve = ~/.dovecot.sieve

# The default Sieve script when the user has none. This is 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.
# --> See sieve_before fore executing scripts before the user's personal
# script.
#sieve_default = /var/lib/dovecot/sieve/default.sieve

# Directory for :personal include scripts for the include extension. This
# is also where the ManageSieve service stores the user's scripts.
sieve_dir = ~/sieve

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

# Path to a script file or a directory containing script files that need to be
# executed before the user's script. If the path points to a directory, all
# the Sieve scripts contained therein (with the proper .sieve extension) are
# executed. The order of execution within a directory is determined by the
# file names, using a normal 8bit per-character comparison. Multiple script
# file or directory paths can be specified by appending an increasing number.
#sieve_before =
#sieve_before2 =
#sieve_before3 = (etc...)

# Identical to sieve_before, only the specified scripts are executed after the
# user's script (only when keep is still in effect!). Multiple script file or
# directory paths can be specified by appending an increasing number.
#sieve_after =
#sieve_after2 =
#sieve_after2 = (etc...)
sieve_after = /etc/dovecot/sieve-after

# 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 were already
# enabled by default.
#sieve_extensions = +notify +imapflags

# Which Sieve language extensions are ONLY available in global scripts. This
# can be used to restrict the use of certain Sieve extensions to administrator
# control, for instance when these extensions can cause security concerns.
# This setting has higher precedence than the `sieve_extensions' setting
# (above), meaning that the extensions enabled with this setting are never
# available to the user's personal script no matter what is specified for the
# `sieve_extensions' setting. The syntax of this setting is similar to the
# `sieve_extensions' setting, with the difference that extensions are
# enabled or disabled for exclusive use in global scripts. Currently, no
# extensions are marked as such by default.
#sieve_global_extensions =

# The Pigeonhole Sieve interpreter can have plugins of its own. Using this
# setting, the used plugins can be specified. Check the Dovecot wiki
# (wiki2.dovecot.org) or the pigeonhole website
# (http://pigeonhole.dovecot.org) for available plugins.
# The sieve_extprograms plugin is included in this release.
#sieve_plugins =

# 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. If set to 0, no limit on the script size is
# enforced.
#sieve_max_script_size = 1M

# The maximum number of actions that can be performed during a single script
# execution. If set to 0, no limit on the total number of actions is enforced.
#sieve_max_actions = 32

# The maximum number of redirect actions that can be performed during a single
# script execution. If set to 0, no redirect actions are allowed.
#sieve_max_redirects = 4

# The maximum number of personal Sieve scripts a single user can have. If set
# to 0, no limit on the number of scripts is enforced.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_scripts = 0

# The maximum amount of disk storage a single user's scripts may occupy. If
# set to 0, no limit on the used amount of disk storage is enforced.
# (Currently only relevant for ManageSieve)
#sieve_quota_max_storage = 0
}

+ 6
- 0
roles/ispmail-dovecot/files/spam-to-folder.sieve Wyświetl plik

@@ -0,0 +1,6 @@
require ["fileinto","mailbox"];

if header :contains "X-Spam-Flag" "YES" {
fileinto :create "INBOX.Junk";
stop;
}

+ 2
- 0
roles/ispmail-dovecot/handlers/main.yml Wyświetl plik

@@ -1,4 +1,6 @@
---
- name: restart dovecot
service: name=dovecot state=restarted
- name: recompile sieve script
command: sievec /etc/dovecot/sieve-after


+ 8
- 0
roles/ispmail-dovecot/tasks/main.yml Wyświetl plik

@@ -38,4 +38,12 @@
- name: Fixing ownership and mode of dovecot-sql.conf.ext
file: path=/etc/dovecot/dovecot-sql.conf.ext owner=root group=root mode=0640
notify: restart dovecot
- name: Create directory for global sieve-after scripts
file: path=/etc/dovecot/sieve-after state=directory
- name: Create global sieve-after script to send spam to its mail folder
copy: src=spam-to-folder.sieve dest=/etc/dovecot/sieve-after/spam-to-folder.sieve
notify: recompile sieve script
- name: Copying Sieve plugin configuration (90-sieve.conf)
copy: src=90-sieve.conf dest=/etc/dovecot/conf.d/90-sieve.conf
notify: restart dovecot


Ładowanie…
Anuluj
Zapisz