Plugins

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.

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

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.