Plugins are dynamic libraries (.so) that can be imported by .vsl scripts. They are bridges between third-party software (MySQL databases, an antivirus, redis databases, etc.) that uses vSL to interface with vSMTP and leverage filtering.

Plugins are placed in the /usr/lib/vsmtp/ directory, and referenced in the configuration using symbolic links.

 ┣ vsmtp.vsl
 ┣ filter.vsl
 ┣ conf.d/
 ┃    ┣ config.vsl
 ┃    ┣ interfaces.vsl
 ┃    β”— app.vsl
 ┣ domain-available/
 ┃    β”—
 ┃        ┣ config.vsl
 ┃        ┣ incoming.vsl
 ┃        ┣ outgoing.vsl
 ┃        β”— internal.vsl
 ┣ domain-enabled/
 ┃    β”— -> /etc/vsmtp/domain-available/
 ┣ objects/
 ┃    β”— net.vsl
 ┣ services/
 β”— plugins/
+     β”— -> /usr/lib/vsmtp/

Adding plugins and associated services

They are then imported in β€œservices”, .vsl scripts that configure and use plugins features.

Check out the Plugin chapter for more information.