Plesk

Dovecot in Plesk for Linux 12.0!

In Plesk 12.0 previews we present full-fledged Dovecot IMAP/POP3 server support with server-side mail filtering via Sieve. The community asked and we deliver!

Dovecot is an open-source high-performance secure and actively developed IMAP and POP3 email server for Linux systems. It’s fast, simple to configure, requires no special administration and uses very little memory. It’s also quite admin-friendly with comprehensive error messages. In Plesk 12.0 Dovecot will serve as an alternative for Courier-IMAP which was the only supported IMAP/POP3 server for quite some time.

We ship Dovecot with Pigeonhole plugin which provides both server-side mail filtering at the time of mail delivery using rules written in standardized Sieve language and a ManageSieve server to manage them. Using the ManageSieve protocol, users can upload their Sieve scripts remotely, without needing direct filesystem access through FTP or SCP. Additionally ManageSieve server always makes sure that uploaded scripts are valid and compile without errors. We use ManageSieve to integrate filter management in webmails (both Roundcube and Horde).

How to install Plesk preview

Caveat emptor: preview builds aren’t for use on production servers. They may (and will) contain bugs and unfinished features. Parallels will not be providing any kind of technical support for machines with preview builds or upgraded from preview builds. Please use preview builds to evaluate new features and give us your feedback (see detail at the end of the post). This is the best opportunity for you to influence development of the next version, since it’s highly unlikely any significant changes will be made after Plesk 12.0 exits previews stage.

While we usually support upgrading from previous preview builds, we won’t be doing so this time (from Plesk 11.6.x, where x < 11.6.4). So you’ll either need to make a clean installation or upgrade from Plesk <= 11.5.30.

To install a preview build, go grab Parallels Installer according to the instructions here or just download it via this direct link: http://autoinstall.plesk.com/plesk-installer . Then launch the installer with –all-versions  option to make the preview versions visible. You’ll want to install 11.6.4 version or higher (we recommend at least 12.0.5). Release notes for preview builds can be found here.

How to install Dovecot support

It’s just as easy as installing any other component in Plesk. In installer web-interface it is located here, just select it and proceed with installation:

Dovecot component in Parallels Installer web interface
Dovecot component in Parallels Installer web interface

In interactive console interface it is located here:

Dovecot component in Parallels Installer interactive console interface

You can also switch from Courier-IMAP to Dovecot in non-interactive mode using following simple command:

# plesk installer --select-release-current --install-component dovecot

Switching between Courier-IMAP and Dovecot is also supported via VZ templates (Provider-Controlled Versioned Templates only)! It is really simple ($VEID  is target container ID):

# vzpkg remove $VEID pp12.0-courier-imap && vzpkg install $VEID pp12.0-dovecot

However we don’t release preview versions of VZ templates, so you’ll have to wait until release to try it out.

Switching from Courier-IMAP to Dovecot is as painless and easy as switching from QMail to Postfix. Ideally your mail users wouldn’t even notice it! If they do, please tell us and we’ll try to fix that.

Integration with Plesk

Dovecot is fully integrated into Plesk the way you would expect from IMAP/POP3 server. The service is manageable from Panel and is tracked by WatchDog extension. IMAP/POP3 traffic usage statistics is collected the same way as for Courier-IMAP. Working with SELinux enabled is also supported. There is no Sieve rules management directly in Panel, instead mail users are supposed to manage server-side mail filters using webmails or other clients that are capable of talking to ManageSieve server.

You can customize Dovecot and Pigeonhole configuration to fit your specific needs the usual way — by adding custom configuration into /etc/dovecot/conf.d/ . Please read comments in /etc/dovecot/dovecot.conf  for details.

However, if you install Dovecot, you will not have access to the following two outdated features usually supported by Panel: authentication via short mailnames when QMail is installed and POP3 before SMTP (aka SMTP after POP). However you may rather easily implement the latter one manually. If you feel you need this feature, drop a note in the comments below explaining why you need it and I’ll consider writing a post that will explain why using POP3 before SMTP is bad and how to implement it manually.

Integration with Horde and Roundcube webmails

The most requested feature that is a part of Dovecot support, namely server-side mail filtering, is manageable via webmails. Both Horde and Roundcube now provide convenient means of constructing and managing custom Sieve filters that doesn’t actually require any knowledge of Sieve language whatsoever.

I’ll demonstrate creating a filter that sends out an “out of office” message (aka “vacation” message or autoresponder) in response to incoming mail in a given period of time.

Horde

Both Horde and Roundcube webmails have filter constructors, but Horde even has a separate page to conveniently set up autoresponder. Of course, you’ll need Dovecot installed to see it.

Horde filters page when Dovecot is installed (click to enlarge)

To reach it log into webmail and go to Mail -> Filters (see screenshot above). Clicking big green “New Rule” button will allow you to create a custom rule. Instead we’ll click “Vacation” in the panel on the left. This will bring us
to the autoresponder customization screen depicted below.

Horde “Vacation” filter page (click to enlarge)

Looks like you can set up everything you need here: vacation start and end dates, autoresponder subject and body, and even some additional settings in the “Advanced Settings” tab.

When you’re done with setting up the autoresponder, click “Save and Enable”. This will internally generate a script in Sieve language that will then be sent via ManageSieve daemon to mail backend. Current script generated by Horde can be viewed on the “Script” page.

Horde “Script” page (click to enlarge)

You may manually activate or deactivate it, as well as fetch a Sieve script currently installed in the mail backend with the help of “Show Active Script” button.

Horde stores its filters in DB and is not able to actually import existing Sieve scripts from mail backend. We use Horde Ingo “Sieve” backend to manage Sieve filters. When Courier-IMAP is installed backend is switched back to the default one.

Roundcube

Roundcube doesn’t have a separate page to set up autoresponder, but it can be easily done using generic Sieve filters constructor. To reach it, go to Settings -> Filters and click “+” sign (add new filter).

Roundcube SieveRules plugin (click to see full version)

Enter a filter name, set filter rules policy to “matching all of the following rules” and add two rules that match “Arrival date” to define autoresponder period. Add one filter action “Out of Office Message” and set up its subject and body. You may also click “Advanced options” to see some additional settings (shown on the screenshot above). When you’re done click “Save” and filters will be automatically applied to the mail backend the same way Horde does it.

With Roundcube we actually ship two plugins that can be used to manage Sieve filters. Those are “managesieve” and “sieverules”. By default we only enable the second one as a more advanced one. However you may switch to “managesieve” plugin in Roundcube configuration.

Both plugins don’t allow viewing the generated Sieve script, however both of them have limited import capabilities. When Courier-IMAP is installed “Filters” settings page will still be shown, but will not be accessible.

Known issues

Please tell us, if you find any!

Just before 11.6.4 preview we partially broke SELinux support for authentication in Dovecot on RedHat el6 and CentOS 6, so for now please either disable SELinux or set it into permissive mode via “setenforce 0″ . This issue will be fixed in the next preview.

Conclusion

We’re interested in your feedback about this feature. You may leave it here in the comments below or in one of Dovecot threads over at Plesk 11.x for Linux Suggestions and Feedback forum. If you have any questions related to this feature feel free to ask them as well. We’d also like to thank the community for its valuable input for Dovecot development.

If you have an opportunity, please try Dovecot out. We hope you’ll be amazed how smooth it works!