Go to file
Joe Bellus 59bce537d7 Unit Tests
Added unit tests for SMTP flow and HTTP endpoints

Added test feature to poem

Refactored SMTP Connection to use adapter traits to make testing
easier. Socket communication is now abstracted away from the command
flow processing.
2022-09-28 17:47:01 -04:00
examples Initial commit 2022-09-28 00:09:57 -04:00
src Unit Tests 2022-09-28 17:47:01 -04:00
ui Initial commit 2022-09-28 00:09:57 -04:00
.drone.yml CI/CD (#1) 2022-09-28 18:02:56 +00:00
.gitignore Initial commit 2022-09-28 00:09:57 -04:00
Cargo.lock Unit Tests 2022-09-28 17:47:01 -04:00
Cargo.toml Unit Tests 2022-09-28 17:47:01 -04:00
Dockerfile CI/CD (#1) 2022-09-28 18:02:56 +00:00
README.org CI/CD (#1) 2022-09-28 18:02:56 +00:00
rustfmt.toml Initial commit 2022-09-28 00:09:57 -04:00

README.org

Mailspy

Mailspy is a mock SMTP server for used during development of applications that send email. Mailspy will serve a compliant, mock SMTP server that an application can connect to, while in development mode. It will accept emails and display them in a web interface that it serves.

Installation

Mailspy is available in binary distribution for 64-bit linux systems.

curl https://objects.5sigma.io/public/mailspy.tar.gz | tar -xz

Binary usage

Execute the mailspy binary:

./mailspy

Then set your application to use the following smtp settings:

- SMTP Server: localhost - Port: 7778 - Username: Any value - Password: Any value - TLS: None/Unsecured - Authorization Type: Basic Auth

View emails in the web interface served at:

http://localhost:7777

Command line switches

  • The SMTP port can be can be configured with -s <port>
  • The HTTP port for the web interface can be configured with -h <port>

Docker

Mailspy is avialable as a Docker image. To run it as a temporary container use:

docker run --rm  -p 7777:7777 -p 7778:7778 git.5sigma.io/mailspy/mailspy:latest

Development

The core application Rust application is located in /src folder. This contains both the SMTP and HTTP servers. The web interface is located in /ui and is a Svelte application.

The application will automatically bundle the svelte application within the binary during build.

Setting up development:

git clone https://git.5sigma.io/mailspy/mailspy.git
cd mailspy
cd ui
npm install

Building

cd ui
npm run build
cd ..
cargo build --release