FeaturesWP CloudPricingEE CLIContactMy Account

Features

Team Access & User Permissions

Server Setup & Management

Site Creation & Management

Deployments & Developer Tools

Firewall Protection

Speed & Caching

Backups & Recovery

Logs & Monitoring

Create WP Cloud Sites

All Features

Read Documentation

Install

Installation Guide

FAQ

Roadmap

Explore EE CLI

Resources

Commands

Handbook

Blog

Community

Forum

EasyExperts

Tutorials

Subscribe

Github

CLEAR

Start For Free

separator Tutorials separator Emails separator Server Setup separator Sieve Mail Filtering Setup

Topics

On this page

Installing packages for sieve and managesieve

Sieve-Dovecot Configuration

Enable sieve plugin support for dovecot-lmtp

Edit sieve dovecot-pluign configuration

Restart Dovecot

Global Sieve Rules

Create global sieve rules file

Enabling sieve plugin in roundcube

Enable sieverules plugin in roundcube config

Configure sieverules plugin to use correct managesieve service port

Testing

Sieve Mail Filtering Setup

This article covers:

  1. Email filtering e.g. showing trash can to newsletters who do not honor unsubscribe links automatically. This is like Gmail filters.
  2. Global spam filtering e.g. moving spam from inbox to junk folder (automatically)

Installing packages for sieve and managesieve

We are using dovecot pigeonhole project for sieve support.


			apt-get install dovecot-sieve dovecot-managesieved
		

Please note that, installing sieve without spamassassin won’t filter spam messages automatically.

Sieve-Dovecot Configuration

Enable sieve plugin support for dovecot-lmtp


			vim /etc/dovecot/conf.d/20-lmtp.conf
		

			Add following:

protocol lmtp {
  postmaster_address = admin@example.com
  mail_plugins = $mail_plugins sieve
}
		

Edit sieve dovecot-pluign configuration


			vim /etc/dovecot/conf.d/90-sieve.conf
		

Add following:


			plugin {
   sieve = ~/.dovecot.sieve
   sieve_global_path = /var/lib/dovecot/sieve/default.sieve
   sieve_dir = ~/sieve
   sieve_global_dir = /var/lib/dovecot/sieve/
}
		

Restart Dovecot

Restart dovecot for changes to take effect:


			service dovecot restart
		

You can see managesieve service running on port number 4190 by using telnet command:


			telnet example.com 4190
		

Will output something like:


			Trying 162.243.12.140...
Connected to test3.rtcamp.com.
Escape character is '^]'.
"IMPLEMENTATION" "Dovecot Pigeonhole"
"SIEVE" "fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date ihave"
"NOTIFY" "mailto"
"SASL" "PLAIN LOGIN"
"STARTTLS"
"VERSION" "1.0"
OK "Dovecot ready."
		

You can find sieve commands here which you can run inside telnet shell to manage sieve filters. Or you can use following method to manipulate global sieve rules directly.

Global Sieve Rules

You can use sieve to implement/enforce server-wise rules/organization policies.

Create global sieve rules file


			mkdir /var/lib/dovecot/sieve/
		

Then create/open global sieve rules files:


			vim /var/lib/dovecot/sieve/default.sieve
		

Following example rules moves spam emails from Inbox to Junk folder automatically. X-Spam-Flag is added by spamassassin and amavis.


			require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
  fileinto "Junk";
}
		

Change Ownership:


			chown -R vmail:vmail /var/lib/dovecot
		

Compile sieve rules:


			sievec /var/lib/dovecot/sieve/default.sieve
		

At this point you have sieve interpreter and managesieve service running.

Enabling sieve plugin in roundcube

Roundcube has 2 plugins for sieve:managesieve andsieverules.

Both provides similar functionality but I like support for extended mail-headers in UI provided by sieverules. So we will be using sieverules plugin.

Enable sieverules plugin in roundcube config

Open


			vim /etc/roundcube/main.inc.php
		

Add sieverules to list of roundcube plugins


			$rcmail_config['plugins'] = array('sieverules');
		

Configure sieverules plugin to use correct managesieve service port

Open


			vim /etc/roundcube/plugins/sieverules/config.inc.php
		

Add/Update following line:


			$rcmail_config['sieverules_port'] = 4190;
		

Testing

If you are using spamassasin, you can test global filters using this spam testing guide.

Amavis, Spamassassin & ClamAV Setup

PREVIOUS

Mail-Server Testing

NEXT


Comments

Features

Useful Links

Product

Other Products

Subscribe for curated product updates, tips, and announcements.

"*" indicates required fields

Name

This field is for validation purposes and should be left unchanged.

Email*

SIGN ME UP

Δ


© rtCamp, since 2009. All rights reserved.

Powered by