You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Joe Bellus 5eec85509a Merge pull request 'unit-tests' (#2) from unit-tests into main 2 months ago
examples Initial commit 2 months ago
src Unit Tests 2 months ago
ui Fixed issue with horizontal scrollbars in the UI 2 months ago
.drone.yml Added triggers to CI for push and promote 2 months ago
.gitignore Initial commit 2 months ago
Cargo.lock Unit Tests 2 months ago
Cargo.toml Unit Tests 2 months ago
Dockerfile CI/CD (#1) 2 months ago
README.org Updated README 2 months ago
rustfmt.toml Initial commit 2 months ago

README.org

Mailspy

Mailspy is a mock SMTP server for used during the development of applications that send email. Mailspy will serve a compliant, SMTP server that an application can connect to, while in development mode. It will accept emails using SMTP protocol, without encryption, and any basic authentication. A web interface is served to display them.

Mailspy does not have any persistance, received emails are stored in memory and last only during the life of the run. It is meant to be lightweight coming in at ~10mb on disk and using 3-4mb of memory. It is meant to be launched along side a development stack on dev machines.

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