Difference between revisions of "Mailsorting"

From SME Server
Jump to navigationJump to search
Line 52: Line 52:
 
  signal-event mailsorting-conf '''user'''
 
  signal-event mailsorting-conf '''user'''
 
where '''user''' has to match a real user name on your server}}
 
where '''user''' has to match a real user name on your server}}
 +
 +
====Sieve compatibility====
 +
'''Only For SME9'''
 +
 +
Once Sieve enabled by the Contrib [[dovecot-extras|smeserver-dovecot-extras]],  filter rules defined in a user's ~/.procmailrc or ~/.mailfilter file are applied prior to the mail getting passed to dovecot-lda and Sieve.
 +
If you want to prohibit the use of Sieve for a determined User
 +
db accounts  setprop USERNAME Sieve disabled
 +
signal-event mailsorting-conf
  
 
====Deleting duplicates====
 
====Deleting duplicates====

Revision as of 00:36, 6 December 2014

Sorting mail with Maildrop or Procmail

  • For sme8
yum install smeserver-mailsorting --enablerepo=smecontribs
  • For sme9

You have to enable stephdl and dag repositories. see bugzilla:8465

yum install smeserver-mailsorting --enablerepo=stephdl,dag

Allows a user to configure mail rules with the UserManager

Procmail or maildrop is used to process your email on the server. It follows user defined rules. Common uses are to sort mail into folders or forward selected email on to other email addresses. The rules that you define are executed as email arrives in your mailbox on the server, and are independent of your email client. If you sort to folders you will need to use a IMAP mail client to read them.


Rule List

The panel shows a table of active rules and the order they are executed in. Each rule has links to modify or remove them.

A yes* in 'copy to' copies the email to your inbox


Create Rules

A user defines a pattern for emails that if matched, an action occurs.


Important.png Note:
Defining a mail rule that includes characters such as "[ $ . , | \{ ^ + ? ( \ " breaks the sort rules and standard mail delivery in general. It is necessary to escape these special characters in the mail rules so that the sort rules work correctly. Special characters can be entered but you must verify they do not break mail deliver and work as expected. It is recommended you only use alphanumeric, @ and spaces.


The rule fields are in fact regular expressions compatible with egrep. As a result the above cited characters are interpreted as structure of the language. Refer to "man egrep" for correct syntax. As an example if you want to catch mails with the subject including "[mymailinglist]", your rule will be :

\[mymailinglist\]

Also please note that that character "|" (pipe) is the default character used to separate fields in the internal database, so it is forbidden.

Configuration

Enable mailsorting

Use either procmail or maildrop

db configuration setprop qmail FilterType procmail
db configuration setprop qmail FilterType maildrop
db configuration delprop qmail FilterType [delete to disable]

If you want to bypass filtering for an individual user

db accounts setprop user MailFilter bypass
db accounts delprop user MailFilter [delete to disable]

after any command

signal-event mailsorting-conf

Any mail that passes through procmail or maildrop without matching a rule is delivered according to the existing user setting.
ie. deliver locally, forward or both.


Important.png Note:
you can force the creation and the validation of rules of a user by this command line
signal-event mailsorting-conf user

where user has to match a real user name on your server


Sieve compatibility

Only For SME9

Once Sieve enabled by the Contrib smeserver-dovecot-extras, filter rules defined in a user's ~/.procmailrc or ~/.mailfilter file are applied prior to the mail getting passed to dovecot-lda and Sieve. If you want to prohibit the use of Sieve for a determined User

db accounts  setprop USERNAME Sieve disabled
signal-event mailsorting-conf

Deleting duplicates

Procmail will automatically delete duplicate email.

Maildrop has to be enabled at the command line

Individually

db processmail setprop USERNAME deldups yes 
signal-event mailsorting-conf 

To enable for all users

db processmail setprop maildrop deldups yes
signal-event mailsorting-conf 


Create a global rule

db commands

It's possible just to use db commands, here is a subset of options

db processmail setprop 50001 pmGlobalRule action delete basis subject criterion xyz

50001: is the rule precedence

action: is either - sort delete forward

basis: match against this - headers Subject To From

criterion: using the text entered here - 'xyz'


fragments

For more flexibility create a fragment in templates-user, expand template as above


individual setting

if you want to avoid manual editing of an individual .procmailrc to be deleted by templates

db accounts setprop USERNAME geekmode enabled

Testing

Create a simple rule, eg Subject = xyz > forward to USER2

Send an email to USERNAME to match, check in USER2's inbox

View the logs

  • For Maildrop
tail -50 /home/e-smith/files/users/USERNAME/mailfilter.log
  • For Procmail
tail -50 /home/e-smith/files/users/USERNAME/procmail.log

View the rules

  • For Maildrop
less /home/e-smith/files/users/USERNAME/.mailfilter
  • For Procmail
less /home/e-smith/files/users/USERNAME/.procmailrc