vSMTP logo

vSMTP

  •  0 ratings
In category: Communication / Email / Mail Transfer Agents

About vSMTP

Next-gen MTA. Secured, Faster and Greener.

  •   445  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: 1,245  
  •   425  
  •   18  
  •  Latest commit: Feb 13, 2023  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about vSMTP


What is vSMTP ?

vSMTP is a next-gen Mail Transfer Agent (MTA), faster, safer and greener.

  • It is 100% built in Rust.
  • It is lightning fast.
  • It is modular and highly customizable.
  • It has a complete filtering system.
  • It is actively developed and maintained.

Faster, Safer, Greener

While optimizing IT resources becomes an increasing challenge, computer attacks remain a constant problem.

Every day, over 300 billion emails are sent and received in the world. Billions of attachments are processed, analyzed and delivered, contributing to the increase in greenhouse gas emissions.

To meet these challenges, viridIT is developing a new technology of email gateways, also called vSMTP.

Follow us on viridit.com

Filtering

vSMTP enable you to create complex set of rules to filter your emails using vSMTP's scripting language (vsl) based on Rhai. You can:

  • inspect / modify the content of incoming emails.
  • forward and deliver emails locally or remotely.
  • connect to databases.
  • run commands.
  • quarantine emails.

and much more.

// -- /etc/vsmtp/service/database.vsl

// vSMTP can be extended with plugins.
import "plugins/vsmtp_plugin_mysql" as mysql;

// Here we declare a service.
// Let's connect to a mysql database.
export const database = mysql::connect(#{
    // the url to connect to the database.
    url: "mysql://localhost/?user=greylist-manager&password=my-password"",
    timeout: "30s",
    connections: 4,
});
// -- /etc/vsmtp/filter.vsl
// Here we declare our rules for filtering.

import "service/database" as db;

#{
  // hook on the 'mail from' stage. (when the server receives the `MAIL FROM:` command)
  mail: [
    rule "greylist" || {
      let sender = ctx::mail_from();

      // is the user in our greylist ?
      // (Don't forget to sanitize your inputs to prevent SQL injection)
      if db::greylist.query(`SELECT * FROM greylist.sender WHERE address = '${sender}';`).is_empty() {
        // it does not, we add the address to the database, then deny the email.
        db::greylist.query(`
            INSERT INTO greylist.sender (user, domain, address)
            values ("${sender.local_part}", "${sender.domain}", "${sender}");
        `);
        // close the connection with a built in "451 - 4.7.1" error code.
        state::deny(code::c451_7_1())
      } else {
        // it is, we accept the email.
        state::accept()
      }
    }
  ],
}

Check out the filtering chapter of the book and the vSL reference to get an overview of what you can do with vSL.

Benchmarks

Comparison between Postfix 3.6.4 & vSMTP 1.0.1 performances, performed on a Ubuntu 22.04 LTS running with an AMD Ryzen 5 5600X 6-Core Processor.

Check out the "hold" benchmark readme to reproduce the above example, and the benchmarks readme to try other benchmarks.

Documentation

In this repository, the "develop" branch is the branch that we work on every day to provide new features. If you want to check examples for the latest vSMTP versions, switch to the "main" branch, where our latest releases are delivered.

For documentation please consult the vBook, the online reference and user guide for vSMTP. Documentation for the "develop" branch is also available in the vBook at https://vsmtp.rs/next

To stay tuned, ask questions and get in-depth answers feel free to join our Discord server. You can also open GitHub discussions.

Roadmap

You can find more information about the project agenda in Milestones and the roadmap section.

You can check out updates in the Changelogs.

Contributing

A guideline about contributing to vSMTP can be found in the contributing section.

Commercial

We can offer a wide range of services, from design to physical implementation, provide maintenance and develop specific features and dedicated APIs to meet your business needs.

For any question related to commercial, licensing, etc. you can contact us on our website or send a message to contact@viridit.com.

License

The standard version of vSMTP is free and under an Open Source license.

It is provided as usual without any warranty. Please refer to the license for further information.

Comments (0)

Please login to join the discussion on this project.

vSMTP Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 21k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

Dashboard

in Personal Dashboards
 6k    0    0    0  

Audiobookshelf

in Audio Streaming
 6k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 21k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

OpenSMTPD logo
OpenSMTPD cover

OpenSMTPD

Secure SMTP server implementation from the OpenBSD project.

MailCatcher logo
MailCatcher cover

MailCatcher

Ruby gem that deploys a simply SMTP MTA gateway that accept…

Postfix logo
Postfix cover

Postfix

Fast, easy to administer, and secure Sendmail replacement.