OX Blog

Dovecot Pro and Lua

Written by Michael Sluzars | Feb 14, 2019

As 2019 begins, we at Open-Xchange would like to provide you with an update and a few details regarding the latest Dovecot Pro releases and new features. In this post, we discuss the addition of Lua-based functionality to Dovecot Pro.

Lua (https://lua.org/) is a popular, lightweight programming language commonly embedded in software applications. When implemented in an application, Lua allows more complex customization than is generally available using built-in application configuration and tools. Lua is relatively simple to learn, and administrators will likely be familiar with it due to its common usage.

Enabling Lua support in Dovecot Pro allows us to provide an easy interface for customers to independently deploy site-specific solutions, as opposed to requiring customized code to be created for each request. This allows a customer to quickly prototype a solution, and then immediately debug within the local platform. Additionally, this approach allows local customizations to be updated if local interfaces change.

The new Lua functionality provides a much quicker and flexible development path. Contrast this new approach with the previous requirement of Dovecot Pro core engineering efforts, in which developing, testing, packaging, and releasing the customization had to occur internally at before a customer's notification system could even begin to be tested.

With Dovecot Pro v2.3.4, Lua supports two systems: authentication and push notifications. For authentication, Dovecot Pro now supports Lua as both a passdb and userdb database. Local authentication and/or dynamic generation of Dovecot Pro config variables can be handled entirely within local code. The same interfaces available to a native C-coded authentication plugin are available to the Lua driver, so there is no loss in functionality by choosing this approach.

For push notification, Dovecot Pro now supports Lua as a driver that allows full control for handling a mail event (e.g. sending a HTTP request to a local endpoint). The Lua driver provides full support for all push notification events, not just new mail. Basic benchmarking indicates that the Lua drivers are within five percent of the performance of native code. For most use-cases, this is well within the acceptable performance profile given the benefits described above.

For more details and descriptions of the new APIs please visit:

Open-Xchange Professional Services is also available for consultation on how these new features can be advantageously deployed in an installation. Please reach out to your account manager or contact us if you have any questions or need more information.