Skip to content

transilvlad/robin

 
 

Robin MTA Server and Tester

By Vlad Marian transilvlad@gmail.com

Overview

Robin MTA Server and Tester is a development, debug and testing tool for MTA architects.

However, as the name suggests it can also be used as a lightweight MTA server with Dovecot SASL AUTH and mailbox integration.

It is powered by a highly customizable SMTP client designed to emulate the behaviour of popular email clients.

The lightweight server is ideal for a simple configurable catch server for testing or a fully fledged MTA using Dovecot mailboxes or web hooks. Provides Prometheus and Graphite metrics with Prometheus remote write built in plus a multitude or other handy endpoints.

The testing support is done via JSON files called test cases. Cases are client configuration files ran as Junit tests leveraging CI/CD integrations.

This project can be compiled into a runnable JAR or built into a Docker container as a stand alone MTA or combined with Dovecot.

A CLI interface is implemented with support for client, server and MTA-STS client execution. Robin makes use of the single responsibility principle whenever possible providing stand-alone tools and libraries most notably an MTA-STS implementation.

Use this to run end-to-end tests manually or in automation. This helps identify bugs early before leaving the development and staging environments.

Or set up the MTA server and configure it with for your mailbox hosting, API infrastructure or bespoke needs. Best do both since Robin is both an MTA and MTA tester :)

Contributions

Contributions of any kind (bug fixes, new features...) are welcome! This is a development tool and as such it may not be perfect and may be lacking in some areas.

Certain future functionalities are marked with TODO comments throughout the code. This however does not mean they will be given priority or ever be done.

Any merge request made should align to existing coding style and naming convention. Before submitting a merge request please run a comprehensive code quality analysis (IntelliJ, SonarQube).

Read more here.

Full Suite

Complete email infrastructure with Dovecot, PostgreSQL, ClamAV, Rspamd, and Roundcube:

docker-compose -f docker-compose.suite.yaml up -d

Disclosure

This project makes use of sample password as needed for testing and demonstration purposes.

  • notMyPassword - It's not my password. It can't be as password length and complexity not met.
  • 1234 - Sample used in some unit tests.
  • stark/potts/hogan - Another sample used in unit tests and documentation. (Tony Stark / Pepper Potts Easter egg)
  • avengers - Test keystore password that contains a single entry issued to Tony Stark. (Another Easter egg)

These passwords are not in use within production environments.

Documentation

Java SMTP/ESMTP/LMTP Client

Server

Secrets

Testing cases

Server Library

Libraries

Miscellaneous

Robin is designed with single responsibility principle in mind and thus can provide reusable components for various tasks.

About

Robin MTA Server and Tester is a development, debug and testing tool for MTA architects.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Java 95.1%
  • HTML 1.8%
  • Shell 1.1%
  • CSS 1.0%
  • Dockerfile 0.5%
  • Python 0.4%
  • Other 0.1%