From ddc53fbccc185bc52adf1050a98531c3750bf1fd Mon Sep 17 00:00:00 2001
From: Aaron LI <aly@aaronly.me>
Date: Mon, 5 Mar 2018 22:50:50 +0800
Subject: mail: setup dovecot sevice

---
 roles/mail/files/sieve/README                 | 24 ++++++++++++++++++++
 roles/mail/files/sieve/after.d/50-spam.sieve  | 32 +++++++++++++++++++++++++++
 roles/mail/files/sieve/after.d/51-msgid.sieve | 22 ++++++++++++++++++
 3 files changed, 78 insertions(+)
 create mode 100644 roles/mail/files/sieve/README
 create mode 100644 roles/mail/files/sieve/after.d/50-spam.sieve
 create mode 100644 roles/mail/files/sieve/after.d/51-msgid.sieve

(limited to 'roles/mail/files')

diff --git a/roles/mail/files/sieve/README b/roles/mail/files/sieve/README
new file mode 100644
index 0000000..b004418
--- /dev/null
+++ b/roles/mail/files/sieve/README
@@ -0,0 +1,24 @@
+This directory contains the global Sieve scripts:
+
+* before.d : scripts executed before the user's personal script;
+* after.d : scripts executed after the user's personal script.
+
+Most scripts are placed to the "after.d" location, thus enable user to
+easily overwrite the system/global defaults.
+
+NOTE:
+* These Sieve scripts should have the proper ".sieve" extension.
+* These Sieve scripts should been manually compiled, due to the lack of
+  write permission for the caller process:
+  $ sievec before.d
+  $ sievec after.d
+
+See:
+* https://wiki.dovecot.org/Pigeonhole/Sieve
+* https://wiki.dovecot.org/Pigeonhole/Sieve/Configuration
+* https://wiki.dovecot.org/Pigeonhole/Sieve/Usage
+* https://wiki.dovecot.org/Pigeonhole/Sieve/Examples
+
+
+Aaron LI
+2017-04-25
diff --git a/roles/mail/files/sieve/after.d/50-spam.sieve b/roles/mail/files/sieve/after.d/50-spam.sieve
new file mode 100644
index 0000000..3d48337
--- /dev/null
+++ b/roles/mail/files/sieve/after.d/50-spam.sieve
@@ -0,0 +1,32 @@
+#
+# /usr/local/etc/dovecot/sieve/after.d/50-spam.sieve
+#
+# Global filters to filter spams.
+#
+# See: https://wiki.dovecot.org/Pigeonhole/Sieve
+#
+# Aaron LI
+# 2017-04-24
+#
+
+
+# fileinto: place messages into an IMAP folder other than INBOX
+require "fileinto";
+# mailbox: create the IMAP folder if not exists
+require "mailbox";
+# imap4flags: add IMAP flags to stored messages
+require "imap4flags";
+ 
+
+# Just delete spams higher than level 10!
+if header :contains "X-Spam-Level" "**********" {
+    discard;
+    stop;
+}
+ 
+# Move SpamAssassin-tagged mails to "Junk" folder.
+if header :contains "X-Spam-Flag" "YES" {
+    fileinto :create "Junk";
+    setflag "\\Seen";
+    stop;
+}
diff --git a/roles/mail/files/sieve/after.d/51-msgid.sieve b/roles/mail/files/sieve/after.d/51-msgid.sieve
new file mode 100644
index 0000000..ea0e55d
--- /dev/null
+++ b/roles/mail/files/sieve/after.d/51-msgid.sieve
@@ -0,0 +1,22 @@
+#
+# /usr/local/etc/dovecot/sieve/after.d/51-msgid.sieve
+#
+# Global filters to filter messages with invalid "message-id".
+#
+# Aaron LI
+# 2017-04-24
+#
+
+ 
+require "fileinto";
+require "mailbox";
+require "imap4flags";
+require "regex";
+
+
+# Trash messages with improperly formed "message-id"
+if not header :regex "message-id" ".*@.*\\." {
+    fileinto :create "Trash";
+    setflag "\\Seen";
+    stop;
+}
-- 
cgit v1.2.2