OpenBSD Mailserver Written by Bart Dorlandt Friday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30 I followed this guide at kernel-panic.it . Below you'll find a small steps-to-follow guide with some additions. What to build I've set-up a mailserver that supports multiple domains. It uses: - Postfix as MTA (with greylisting) - Postgrey - MySQL as backend - Dovecot as IMAP/POP3 server and Local Delivery Agent (LDA) - with quota - Control plane by amavisd for: - Anti-spam with Spam Assassin - Anti-virus with clamav - Fetchmail to fetch remote email and inject it in your mailserver - Squirrelmail for webmail. What to install At the time of writing I use OpenBSD 4.2. I make use of packages and ports to make this all work. 1 / 39
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
I followed this guide at kernel-panic.it . Below you'll find a small steps-to-follow guide with someadditions.
What to build
I've set-up a mailserver that supports multiple domains. It uses:
- Postfix as MTA (with greylisting) - Postgrey - MySQL as backend - Dovecot as IMAP/POP3 server and Local Delivery Agent (LDA) - with quota
- Control plane by amavisd for:
- Anti-spam with Spam Assassin
- Anti-virus with clamav
- Fetchmail to fetch remote email and inject it in your mailserver - Squirrelmail for webmail.
What to install
At the time of writing I use OpenBSD 4.2. I make use of packages and ports to make this allwork.
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
Postfix
First we'll install postfix with mysql support. If you also want to use sasl support you'll need touse ports, because there is no package which support them both.
pkg_add -ai postfix-2.5.20070531-mysql
After this step we'll enable and configure postfix.
### Dovecot LDA ### # To use it for everything #mailbox_command = /usr/local/libexec/dovecot/deliver
# To use it virtually, which is needed to use plugins like quota, or to enable logging. virtual_transport = dovecot dovecot_destination_recipient_limit = 1
# I have my server in a datacenter, so I don't need to have my clients # use this as an smtp server. Else put your trusted networks behind this range # seperated by a comma. mynetworks = 127.0.0.0/8
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
reject_rbl_client socks.dnsbl.sorbs.net, reject_rbl_client http.dnsbl.sorbs.net, reject_rbl_client web.dnsbl.sorbs.net, # leave the next line out if you don't want to use postgrey check_policy_service inet:127.0.0.1:60000 permit
# This command is use to forward the emails to the amavis daemon content_filter = smtp-amavis:[127.0.0.1]:10024
# in case you want different bounce messages bounce_template_file = /etc/postfix/bounce.cf
Here we prepare the postfix /etc/postfix/master.cf configuration for amavisd. The number 4 isrelated to the $max_server you will define in amavisd.conf
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/local/libexec/dovecot/deliver-d $(recipient)
file: /etc/postfix/bounce.cf
# # The failure template is used when mail is returned to the sender; # either the destination rejected the message, or the destination # could not be reached before the message expired in the queue. #
failure_template = <<EOF Charset: us-ascii From: MAILER-DAEMON (Mail Delivery System) Subject: Undelivered Mail Returned to Sender Postmaster-Subject: Postmaster Copy: Undelivered Mail
This is the mail system at host $myhostname.
I'm sorry to have to inform you that your message could not be delivered to one or more recipients. It's attached below.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can delete your own text from the attached returned message.
The mail system EOF
# # The delay template is used when mail is delayed. Note a neat trick: # the default template displays the delay_warning_time value as hours # by appending the _hours suffix to the parameter name; it displays # the maximal_queue_lifetime value as days by appending the _days # suffix. # # Other suffixes are: _seconds, _minutes, _weeks. There are no other # main.cf parameters that have this special behavior. # # You need to adjust these suffixes (and the surrounding text) if
6 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
# you have very different settings for these time parameters. #
delay_template = <<EOF Charset: us-ascii From: MAILER-DAEMON (Mail Delivery System) Subject: Delayed Mail (still being retried) Postmaster-Subject: Postmaster Warning: Delayed Mail
This is the mail system at host $myhostname.
#################################################################### # THIS IS A WARNING ONLY. YOU DO NOT NEED TO RESEND YOUR MESSAGE. # ####################################################################
Your message could not be delivered for more than $delay_warning_time_hours hour(s). It will be retried until it is $maximal_queue_lifetime_days day(s) old.
For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can delete your own text from the attached returned message.
The mail system EOF
# # The success template is used when mail is delivered to mailbox, # when an alias or list is expanded, or when mail is delivered to a # system that does not announce DSN support. It is an error to specify # a Postmaster-Subject: here. #
Your message was successfully delivered to the destination(s) listed below. If the message was delivered to mailbox you will receive no further notifications. Otherwise you may still receive notifications of mail delivery errors from other systems.
7 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
The mail system EOF
# # The verify template is used for address verification (sendmail -bv # address...). or for verbose mail delivery (sendmail -v address...). # It is an error to specify a Postmaster-Subject: here. #
verify_template = <<EOF Charset: us-ascii From: MAILER-DAEMON (Mail Delivery System) Subject: Mail Delivery Status Report
This is the mail system at host $myhostname.
Enclosed is the mail delivery report that you requested.
The mail system EOF
Postfix & MySQL files
create each of these files in /etc/postfix/ and add the information to it. I use the socket of mysql.How this is done in chrooted apache will be described later at bootscripts.
In these examples I have use the user and password vmail. You may change this to whateveryou like. Also you can change the name of the database. I've used mail.
/etc/postfix/mysql_virtual_alias_maps.cf
user = vmail password = vmail hosts = unix:/var/run/mysql/mysql.sock dbname = mail query = SELECT alias FROM alias_maps WHERE account='%s'
8 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
/etc/postfix/mysql_virtual_domains.cf
user = vmail password = vmail hosts = unix:/var/run/mysql/mysql.sock dbname = mail query = SELECT domain FROM domains WHERE domain='%s'
/etc/postfix/mysql_virtual_mailboxes.cf
user = vmail password = vmail hosts = unix:/var/run/mysql/mysql.sock unix:/var/spool/postfix/var/run/mysql/mysql.sock dbname = mail query = SELECT maildir FROM users WHERE login='%s'
/etc/postfix/mysql_virtual_email2email.cf
user = vmail password = vmail hosts = unix:/var/run/mysql/mysql.sock dbname = mail query = SELECT login FROM users WHERE login='%s'
We have made all the preparations. Now we are going to setup Postgrey.
Postgrey
I have installed Postgrey from "Ports". The advantage this way is you'll have the postgreyreport
9 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
tool also installed. With this tool you can create a report out of your /var/log/maillog.
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
Now we can edit this file. I don't want to be able to connect to this database from anywhere elsethan localhost. So, I use the following command and place it in the [mysqld] section. I haveplaced some configuration for the logging here.
bind-address = 127.0.0.1
expire_logs_days = 10 max_binlog_size = 50M
You may use this file also in your home directory (or the one of root) so you can access yourdatabase with more ease by filling in the password in the file. Rename the file to .my.cnf
NOTE: this isn't the safest trick...
I like to use an own class for mysql. To do this add the following to the login.conf. (copy-pastewill do the trick)
Ok, now we are going to set the password of the database.
/usr/local/bin/mysql_install_db
11 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
su -c mysql root -c '/usr/local/bin/mysqld_safe &' mysqladmin -u root password <choose one>
Connect to your mysql server with the client with the root account mysql -u root -p and fill inthe requested password. Expand the mysql insertion to your need. For example insertion of domains, usersor alias_maps. Please note we use default values for uid, gid, home and quota, so you don't need to add it,unless it is different.
NOTE: remember! My values are in here, check them first before you paste it into yourmysql-client.
What this piece of text does is the following:
Create the database and use it:
CREATE DATABASE `mail`; USE `mail`;
Create the user vmail and give it the rights on the database mail.
CREATE USER 'vmail'@'localhost' IDENTIFIED BY 'vmail'; GRANT SELECT , INSERT , UPDATE , DELETE ON `mail` . * TO 'vmail'@'localhost';
Create the tabel alias_maps and fill it up.
12 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
CREATE TABLE `alias_maps` ( `account` varchar(80) NOT NULL default '', `alias` text NOT NULL, PRIMARY KEY (`account`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Dovecot is a very small and quick IMAP/POP3 server. It is capable of doing IMAP, IMAPS,POP, POPS. Did I mention it is easy to configure... For some extra info for configuring the SQLpart, take a look here . Recently, I also included quota support. For this to work you need tohave the LDA served by dovecot and you need to enable the plugins. If you don't want thequota support just disable the plugin.
Now we will install the Dovecot Imapserver. This is done by the following command. (make sureyou select package with mysql support)pkg_add -ai dovecot
Edit the following file to your needs: /etc/ssl/dovecot-openssl.cnf Execue the following command.
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
args = /etc/dovecot-sql.conf }
socket listen { master { path = /var/run/dovecot/auth-master mode = 0660 # Default user/group is the one who started dovecot-auth (root) user = vmail group = vmail } client { user = _postfix group = _postfix path = /var/spool/postfix/private/auth mode = 0660 } } }
plugin { quota = maildir }
changes to /etc/dovecot-sql.conf
Take a look here for configuring the extra fields. This is the default file, change values ifneeded.You to get the quota and other information during the prefetch to work with quotas.
driver = mysql
connect = host=/var/run/mysql/mysql.sock dbname=mail user=vmail password=mailv default_pass_scheme = CRYPT ### with prefetch and quota ### user_query = SELECT uid, gid, home, maildir as mail, concat('maildir:storage=',quota) ASquota FROM users WHERE login = '%u'
password_query = SELECT password, uid AS userdb_uid, gid AS userdb_gid, home ASuserdb_home, maildir as userdb_mail, concat('maildir:storage=', quota) AS userdb_quotaFROM users WHERE login = '%u'
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
Fetchmail
Fetchmail is a very nice program to fetch mails from other servers. I use it to read POPaddresses and put the emails in my IMAP mailbox.
Now we will install the Fetchmail. This is done by the following command.
pkg_add -ai fetchmail
Below you'll find my config.
set daemon 300 #set logfile /var/log/fetchmail set no bouncemail defaults protocol pop3
poll pop.<domain1>.nl user <remote_user> pass <password> is <localuser1> here nokeep
poll pop.<domain2>.nl user <remote_user> pass <password> is <localuser2> here nokeep # keep in mind that the localuser in this # howto is in fact "[email protected]"
17 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
ClamAV
Make sure you have the newest updates of your ports of the current tree. For more info on howto do that, you may check the info on the openBSD port page .
You can check if you have the newest files by doing:
head -n1 /usr/ports/security/clamav/Makefile
if it is at least version 1.37 you are fine.
Ok, lets continue. By executing the following commands you will install clamav with support forunrar and unarj.
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
When this is finished we can edit the two files in your etc directory; freshclam.conf and clamd.conf . Firstwe will edit freshclam.conf. For the first entry of of the DatabaseMirror you might want change itto your country code. Check the rest of the configuration and make sure these values are set.
SpamAssassin is a mature, widely-deployed open source project that serves as a mail filter toidentify Spam. SpamAssassin uses a variety of mechanisms including header and text analysis,Bayesian filtering, DNS blocklists, and collaborative filtering databases.
Now we will install the SpamAssassin. This is done by the following command.
SpamAssassin has a lot of configuration option. Only a few are needed to get it working. If youwant to see how to tune the rest you make take a look at the man page ( Mail::SpamAssassin::Conf ).
# these aren't needed to get it going, but I use them anyway ok_languages nl en ok_locales en
Amavisd
To install Amavisd-new it is required to install freeze. Unfortunately freeze isn't available as apackage. So you need ports to install it. This what we will do first and after it we will installamavisd-new from package.
cd /usr/ports/archivers/freeze make make install
pkg_add -ai amavisd-new
21 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
Below you'll find a list of my changed settings. Feel free to change anything.
$sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level
#$sa_kill_level_deflt = 6.31; # If this is the same as $sa_tag2_level_deflt it will block it $sa_kill_level_deflt = 25; # if this value is higher then $sa_tag2_level_deflt # it will forward the email to the client with a change in the header # spam with a higher mark will be blocked $sa_dsn_cutoff_level = 9; # spam level beyond which a DSN is not sent $sa_quarantine_cutoff_level = 20; # spam level beyond which quarantine is off
# Uncomment the next line to send all spam to this account, else it will just go the user #$spam_quarantine_to = "spam@$mydomain";
# Don't forget to create these files. In these files you can list an emailaddress per line. # in Whitelist it will always go through # in Blacklist it will never go through @whitelist_sender_maps = read_hash("$MYHOME/whitelist"); @blacklist_sender_maps = read_hash("$MYHOME/blacklist");
@av_scanners = ( # Only uncomment the ClamAV lines which are specified here
# ### http://www.clamav.net/ ['ClamAV-clamd', &ask_daemon, ["CONTSCAN {}n", "/var/clamav/clamd.sock"], qr/bOK$/, qr/bFOUND$/, qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ], # NOTE: the easiest is to run clamd under the same user as amavisd; match the # socket name (LocalSocket) in clamav.conf to the socket name in this entry # When running chrooted one may prefer: ["CONTSCAN {}n","$MYHOME/clamd"],
# ### http://www.clamav.net/ and CPAN (memory-hungry! clamd is preferred) # ['Mail::ClamAV', &ask_clamav, "*", [0], [1], qr/^INFECTED: (.+)/], );
Please use the program configure to set-up the configuration to use the template courier forIMAP settings.
As you can see I use the global addressbook. You'll have to create it along with userpreferences table ande the address table to save a users addressbook.
CREATE TABLE `address` ( `owner` varchar(128) NOT NULL default '', `nickname` varchar(16) NOT NULL default '', `firstname` varchar(128) NOT NULL default '', `lastname` varchar(128) NOT NULL default '', `email` varchar(128) NOT NULL default '', `label` varchar(255) default NULL, PRIMARY KEY (`owner`,`nickname`), KEY `firstname` (`firstname`,`lastname`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `global_abook` ( `owner` varchar(128) NOT NULL default '', `nickname` varchar(16) NOT NULL default '', `firstname` varchar(128) NOT NULL default '', `lastname` varchar(128) NOT NULL default '', `email` varchar(128) NOT NULL default '', `label` varchar(255) default NULL, PRIMARY KEY (`owner`,`nickname`), KEY `firstname` (`firstname`,`lastname`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `userprefs` ( `user` varchar(128) NOT NULL default '', `prefkey` varchar(64) NOT NULL default '', `prefval` blob NOT NULL,
25 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
I have made these changes to the php.ini to be able to upload larger files. These may seemhuge, but in fact I use this value also for another website to upload movies. So feel free toshrink them a bit.
Open webmail can be installed by using the pkg_add function of OpenBSD. If you haveconfigured your PKG_PATH , you areable to install openwebmail by using pkg_add -iv openwebmailas root. This will also install the following packages.
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
You can change the default setting by executing this command /usr/local/bin/ispell-config.
Unfortunatly I haven't figured this one out for OpenBSD. The information on the installation isscarce. The init script you had to execute did little for me. I hope someone could add someusefull info here.
NOTE: If you are able to make this work, you also have bring perl into the chroot /var/www.Probably it also needs to be set to suid.
Startup files
Here you'll find the configs to let programs start at boot time.
We have 2 config files to edit. /etc/rc.conf.local and /etc/rc.local. In the first we will define someparameters for default programs and in rc.localwe can put our own startup scripts.
Lets start with /etc/rc.conf.local
/etc/rc.conf.local
27 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
shlib_dirs="$shlib_dirs /usr/local/lib/mysql" # extra directories for ldconfig mysql=YES syslogd_flags="-a /var/spool/postfix/dev/log" sendmail_flags="-bd"
In the next configuration we also create the socket for mysql so we can connect from thechrooted environment.
/etc/rc.local
### MySQL ### MySQL if [ X"${mysql}" == X"YES" -a -x /usr/local/bin/mysqld_safe ]; then
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
fi fi
### Mail ### # Dovecot Imap if [ -x /usr/local/sbin/dovecot ]; then echo -n ' dovecot'; /usr/local/sbin/dovecot fi
# Fetchmail if [ -x /usr/local/bin/fetchmail ]; then echo -n ' fetchmail'; /usr/local/bin/fetchmail -f /etc/.fetchmailrc fi # this will show a warning that to start as root isn't the right way, but I want to control it # instead of my users. Plus not all my users have a shell account.
# ClamAV VirusScanner if [ -x /usr/local/sbin/clamd ]; then echo -n ' clamd' ; [ -S /var/clamav/clamd.sock ] && rm -f /var/clamav/clamd.sock/usr/local/sbin/clamd >/dev/null 2>&1 fi
# Amavisd-new if [ -x /usr/local/sbin/amavisd ]; then echo -n ' amavisd'; /usr/local/sbin/amavisd >/dev/null 2>&1 fi
# cat sql-stop.sh #!/bin/sh mysqladmin -u root shutdown # my password is configured in /root/.my.cnf
# cat sql-start.sh #!/bin/sh echo -n " mysqld with logging" su -c mysql root -c '/usr/local/bin/mysqld_safe >/dev/null 2>&1 &' for i in 1 2 3 4 5 6; do if [ -S /var/run/mysql/mysql.sock ]; then break else sleep 1 echo -n "." fi done
If mail is stuck in your mailq because of your mailserver being down or your DNS was wrongimplemented or you had a misconfiguration. You have a couple of options. One of them is waitfor it to empty itself. I don't like that option so here are a few commands you can use:
Postfix
You can also use the -v option if you want to see what is happening.
If you want the queue only to be emptied for a certain domain, you can use the following. (alsowith the -v to see what is happening)
/usr/local/sbin/postqueue -fs bamweb.nl -v
If you want to requeue the whole bunch this is what you have to do. Remember your mail won'tbe gone in a second. It still has to pass the WHOLE queue.
32 / 39
OpenBSD Mailserver
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
postsuper -r ALL
Sendmail
While I'm at it, these are for sendmail. You can also use the -v option if you want to see what ishappening.
/usr/sbin/sendmail -q /usr/sbin/sendmail -q -v
If you want the queue only to be emptied for a certain domain, you can use the following. (alsowith the -v to see what is happening)
/usr/sbin/sendmail -qR bamweb.nl -v
Backup MX
To have a backup MX you have to do a few things on the backup MX side. You don't have to doanything on the primary MX side. Add the domain to the relay configuration, add the IP of theprimary MX to the config ( safety ), and that to the smtpd_recipient_restrictions. To make theconfiguration a bit more modulair I also use the mysql backend for the backupMXs. To do thiscreate a file: /etc/postfix/mysql_virtual_backupmx.cf.
# I don't want to specify all of the users, so I leave it open relay_recipient_maps = #It is also possible to specify a name instead of an IP address. This is not nessecarily! permit_mx_backup_networks = <primary MX IP domain1.tld>/32, <primary MX IPdomain2.tld>/32 # default queue time = 5 days maximal_queue_lifetime = 40d
smtpd_recipient_restrictions = permit_mynetworks, # put this in between permit_mx_backup,
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
check_relay_domains, # go along with the rest.
Restart the postfix server again.
cmuSieve
because were using the Local Delivery Agent (LDA) of Dovecot, we are able to use the Sieveplugin. This plugin makes it possible to create filters on your server. This is pretty need,because this way you don't have to create or export/import your filters everywhere you use yourmail also in your webclient (like squirrelmail)
To get this working you'll have to install the sieve plugin . This is also in the openbsd repository,so it ain't a sweat to install it. I installed the mysql version. This version could read theinformation from the sql database, but I'm not using that option right now. So, next theconfiguration. Remember, you will see some other configurations, like quota. These werementioned earlier. only mind the cmusieve stuf.
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
Now we have enabled the sieve plugin and have pointed to two locations to read the sieve files.We have a global sieve script, which is only read if no user script is found!!! And we have aper-user-script in the directory of the virtual user. Right now only someone with access to boxmay change these files.
Next we have to fill up the files. Let's start with the global script.
This script will move the email with the subject containing ***SPAM*** to the folder Junk (this iscalled ".Junk" in the directory structure on the server). It will also set the flag seen (or read) onthe mail.
Next we take a look on a part of my own script. Remember, if this file exists the global scriptisn't read. So you'll have to created the SPAM part yourself or not if you just want to see yourSPAM.
The first check to see if the sieve filter is being used is to see if the file .dovecot.sievec has beencreated. If you have used another filename than .dovecot.sieve, your filename is being usedwith the extra "c" at the end. If the script contains errors a file .dovecot.sieve.err is beingcreated. You can also test your sieve script online. Just google for someting like "sieve testscript".
Let's takea look in the logfile. If something is wrong in your script, you could get some of thefollowing errors:
Written by Bart DorlandtFriday, 18 April 2008 22:08 - Last Updated Friday, 13 February 2009 15:30
In any of these cases you should test your script online or figure it out yourself.
If you see the following it succeeded.
deliver([email protected]): Nov 05 08:15:53 Info:msgid=<5100277056DA4B4DB696F0E71C09559101CE22BE@ms-ams-e3mb02.emea.dsmain.com>: saved mail to Folder1.subfolder2
ManageSieve server
With this tool you are able to let your virtual users upload their sieve scripts. I haven't used ityet, but you can find information over here.
ManageSieve Server solutions
Specials (providers) Planet
If you want to set up a backup MX behind a planet internet provider you need to set up a fewthings. First you need to configure the following in the DNS. The first one is the primary MX. Thesecond one is the system by name or IP address with the planet account. The third is themailrelay of planet. Only this machine is allowed to send emails into the planet domain. Afterdelivery to this machine it will go through the list of the DNS again to really deliver it tosystem_at.planet.nl.